From 3b414155815a3913c63edb9b5a22f52e87dbe99f Mon Sep 17 00:00:00 2001 From: parax0 Date: Sun, 24 Jan 2016 00:50:03 -0700 Subject: [PATCH] Added the ability to extract paks by invoking PakTool + added PakTool to the repo (temporarily) --- bin/PakTool-readme.txt | 167 ++++++++++++++++++++++++++++++++++++ bin/PakTool.exe | Bin 0 -> 186880 bytes src/Editor/CStartWindow.cpp | 48 +++++++++++ src/Editor/CStartWindow.h | 3 + 4 files changed, 218 insertions(+) create mode 100644 bin/PakTool-readme.txt create mode 100644 bin/PakTool.exe diff --git a/bin/PakTool-readme.txt b/bin/PakTool-readme.txt new file mode 100644 index 00000000..df6f3714 --- /dev/null +++ b/bin/PakTool-readme.txt @@ -0,0 +1,167 @@ +PakTool v1.02 + +PakTool is a command line tool developed by Parax made to handle Retro Studios .pak files. It can extract and repack files from any Retro game, as well as dump a list of files. It will also automatically decompress files and can even handle compression embedded within file formats! + +Check out the Retro Modding Wiki for information on the structure of Retro's pak formats: +http://www.metroid2002.com/retromodding/wiki/PAK_(File_Format) + +================= +Table of Contents +================= + +1. Changelog +2. Games +3. Usage +3.1. Extract +3.2. Repack +3.3. List Dump +4. Note on Tropical Freeze +5. Future updates + +============ +1. Changelog +============ + +v1.02 1/24/16 +- Fixed incorrect compression type for MP2 demo paks. + +v1.01 5/30/15 +- Fixed incorrect DKCR pak names. +- Added pak list for Trilogy. + +v1.0 2/19/15 +- Duplicate files are now ignored in unpack mode, significantly improving performance. +- File formats with embedded compression can now be decompressed in Extract Mode and recompressed in Repack Mode, allowing for the decompression of MREA files as well as Tropical Freeze models, textures, and shaders at unpack time. +- You can now place PakTool in a game's root directory and specify that game's title in Extract and List Dump modes to automatically unpack every one of that game's paks. (thanks DJGrenola) +- Repacking is now supported for Metroid Prime 3 and Donkey Kong Country Returns. +- Repacking now requires you to enter the game you're repacking for. This sets both the output pak format and the compression used, and replaces the old compression type parameter. +- A new "auto" mode has been added for Repack Mode; now you can just specify the pak name and PakTool will automatically set the files folder, the output pak name, and the list file. This only works if all those things use the default names, though! +- Tropical Freeze files with pak metadata now have it appended to the end of the file. + +v0.86 11/11/14 +- Donkey Kong Country: Tropical Freeze support added. No auto-decompression for now. + +v0.85 9/09/14 +- Fixed a bug with Metroid Prime 3 decompression where uncompressed data clusters weren't being copied to the output buffer correctly. This primarily affected textures, preventing the headers from being dumped correctly. +- List files are now required in repack mode; paks created with a list of every file in the provided folder are not only inoptimal, but they wouldn't have even worked ingame at all, so it didn't make sense to keep the functionality. +- Dump mode will now use the name of the input pak as the name of the file list if no name is explicitly provided. +- Donkey Kong Country Returns support added. + +v0.8 7/25/14 +- Added support for LZO compression for Metroid Prime 2. +- Added support for Metroid Prime 3 paks. Extraction, decompression, and file list dumping are all fully functional; however, there's no support for repacking yet. +- Compression now defaults to being off. +- Fixed crashing issue that occurred occasionally in repack mode. + +v0.6 7/21/14 +- File names are now dumped into the file list text files and can be reused to repack. +- A single MLVL is no longer required to repack. + +v0.5 6/21/14 +- Initial release + +======== +2. Games +======== + +Some modes can take a parameter specifying a certain game. Extract Mode and List Dump Mode can use this parameter to automatically dump every pak belonging to the specified game. Repack Mode needs this to choose the correct output pak format and compression algorithm. The following arguments, and some variations on them, are accepted: + +MP1 - Metroid Prime +MP2 - Metroid Prime 2: Echoes +MP3 - Metroid Prime 3: Corruption +DKCR - Donkey Kong Country Returns +DKCTF - Donkey Kong Country: Tropical Freeze +MP1Demo - Metroid Prime Kiosk Demo +MP2Demo - Metroid Prime 2 Demo Disc +MP3Proto - Metroid Prime 3 E3 Prototype +Trilogy - Metroid Prime: Trilogy + +======== +3. Usage +======== + +Usage: PakTool [mode] [options] + +The tool has three main functions. + +------------ +3.1. Extract +------------ + +PakTool will read an input pak and extract all files contained within it to a folder. Any compressed files will be automatically decompressed. This can either be used with a single pak (in which case the -x can be omitted, and unpack mode will be assumed), or a game can be specified with the Extract Game mode, -xg, which will automatically unpack every pak belonging to that game. For Extract Game to work, PakTool should be placed in the game's root directory. + +Usage: PakTool -x [input pak] + Alt: PakTool -xg [game] + +Optional: -o [output directory] -e + + -o [output directory]: Specify the output directory. By default, PakTool will create a new directory in the same directory as the input pak called "[name]-pak". With the -o option, you can specify a different output directory. If this option is used with a single pak, then the files will be extracted directly to the chosen output directory. Otherwise, a separate subdirectory will be created for each pak; the game's original directory structure will be preserved within the specified output directory. + + -e: Some files contain compressed data as part of their actual format, rather than being part of the pak format. If -e is specifed, PakTool will decompress any files that contain embedded compression. This means MREA files in Metroid Prime 2/Metroid Prime 3/DKCR, and CMDL/SMDL/WMDL/TXTR/MTRL files in Tropical Freeze. + +----------- +3.2. Repack +----------- + +PakTool will repack the files in a directory into a new custom pak that can be loaded ingame. The "game" parameter will set both the output pak format, as well as the type of compression used in the pak. Files are repacked in the order specified by the list file. You can use List Dump Mode to generate a list file first, modify it if necessary, then use it to repack. + +You can also use the Repack Auto mode, using -ra, to automatically set the input folder, the output pak, and the list file all at the same time. For example, if you run "PakTool -ra MP1 Metroid1", then PakTool will look for a folder called "Metroid1-pak/", a list file named "Metroid1-pak.txt", and will save to "Metroid1.pak". This will only work properly if everything is extracted with the default names. + +Usage: PakTool -r [GAME] [INPUT FOLDER] [OUTPUT.pak] [LIST.txt] + Alt: PakTool -ra [GAME] [FOLDER/PAK/LIST NAME] + +Optional: -e / -n + + -e: This is the reverse of the -e setting from Extract Mode; it will recompress files with embedded compression as part of their format, if they were previously decompressed. Since Tropical Freeze isn't supported in repack mode, this only affects MREA files. + + -n: Disable compression entirely. Your paks will be much larger with this flag set, but it may be more convenient if you want to hex edit the pak directly. Paks without any compressed files are still compatible with the game. + +Keep in mind that -e and -n can't be used simultaneously. + +-------------- +3.3. List Dump +-------------- + +PakTool will simply dump a list of files and filenames contained within the pak. This list can then be reused in Repack Mode to create new paks. This can either be used with a single pak, or a game can be specified with the Dump Game mode, -dg, which will automatically dump a list for every pak belonging to that game. For Dump Game to work, PakTool should be placed in the game's root directory. + +Usage: PakTool -d [input pak] + Alt: PakTool -dg [game] + +Optional: -o [output] + + -o [output directory]: Specify the output directory. By default, PakTool will create a text file in the same directory as the input pak. With the -o option, you can specify a different output directory. If this parameter is specified with Dump Game mode, then the game's original directory structure will be preserved within the specified output directory. + +========================== +4. Note on Tropical Freeze +========================== + +Tropical Freeze's pak format allows the pak to hold extra data for certain files in a section labeled "META". The main area where this comes into play is compression. Compression in Tropical Freeze is handled much differently than with the previous pak formats. A few formats are compressed: + +- Models (CMDL, SMDL, WMDL), as well as textures (TXTR), have a "GPU " section which is compressed with a custom LZSS implementation. +- Shaders (MTRL) are compressed with zlib. + +However, the metadata required to decompress those files - the compressed and decompressed sizes, the number and sizes of compressed buffers, etc. - are located in the pak, in the META section, rather than the file itself. This means if the files are unpacked directly and left as-is, then they're completely useless, because they come without some extremely important metadata. + +To remedy this, any file that contains metadata will have an extra META section appended to the end of the file data. This extra META section uses the standard Tropical Freeze section header format, followed by a dump of that file's metadata. This extra data will not be added to the size value in that file's RFRM header, which makes it easy to locate and seek to. + +PakTool also has the ability to directly decompress these files at unpack time. For textures and shaders, this is simple; compressed data is simply replaced with the decompressed equivalent. The RFRM and section header sizes are both updated with the new sizes. The extra META section will not be appended to the end of the file in this case. + +However, on models, this introduces another problem: the GPU section contains multiple compressed buffers, and the pak metadata is the only way to distinguish between them! This means some modification of the format is necessary; otherwise the file data is still useless. + +Model GPU sections contain a number of vertex buffers and index buffers. When PakTool decompresses these, it will insert a u32 indicating the number of vertex buffers; following that, each vertex buffer will be written to the file, each preceded with a 32-bit size value (in bytes). Then the same process is repeated for index buffers. + +This process isn't completely ideal, but it does enable all the files to be fully decompressed and completely usable on their own, without any external metadata. Just keep in mind that any modifications to the format will not work ingame; the data needs to be recompressed and the extra data needs to be removed before the files can be properly repacked. + +If you'd like to work with the original files directly, simply don't specify the -e parameter, and these files will be extracted with their compression intact and their metadata appended to the end of the file, like with other formats. + +You can find information on how the Tropical Freeze LZSS implementation works on the Retro Modding Wiki. +http://www.metroid2002.com/retromodding/wiki/LZSS_Compression + +================= +5. Future updates +================= + +The following features are being considered for future releases: + +- Parsing files for dependencies. This would allow for repack mode file lists to be built automatically. Unfortunately, this is a fairly complicated process and requires a thorough understanding of every format used in each game. +- Repacking for Tropical Freeze. This is unlikely to happen until there's a public means of modding Wii U games. Handling embedded compression would also be difficult since it would require a custom LZSS compressor. \ No newline at end of file diff --git a/bin/PakTool.exe b/bin/PakTool.exe new file mode 100644 index 0000000000000000000000000000000000000000..345940967a268418ec6697c9cdb581b9e435c6ff GIT binary patch literal 186880 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 #include +#include CStartWindow::CStartWindow(QWidget *parent) : QMainWindow(parent), @@ -187,3 +188,50 @@ void CStartWindow::on_actionLaunch_model_viewer_triggered() mpModelEditor->setWindowModality(Qt::ApplicationModal); mpModelEditor->show(); } + +void CStartWindow::on_actionExtract_PAK_triggered() +{ + QString Pak = QFileDialog::getOpenFileName(this, "Select pak", "", "Package (*.pak)"); + + if (!Pak.isEmpty()) + ExtractPackage(Pak, true); +} + +void CStartWindow::ExtractPackage(const QString& rkPath, bool PopupOnComplete) +{ + // Not the ideal way to be handling this but it's the easiest and it'll be a good holdover until later + QProcess PakTool(this); + + // Dump assets + QStringList PakToolArgs; + PakToolArgs << "-x" << rkPath; + + QDialog Dialog; + QLayout *pLayout = new QVBoxLayout(&Dialog); + pLayout->addWidget(new QLabel("Extracting...", &Dialog)); + Dialog.setWindowFlags(Qt::Window | Qt::WindowTitleHint); + + connect(&PakTool, SIGNAL(finished(int)), &Dialog, SLOT(done(int))); + PakTool.start("PakTool.exe", PakToolArgs); + Dialog.exec(); + int Result = PakTool.exitCode(); + + // Dump list + if (Result == 0) + { + PakToolArgs.clear(); + PakToolArgs << "-d" << rkPath; + PakTool.start("PakTool.exe", PakToolArgs); + PakTool.waitForFinished(); + Result = PakTool.exitCode(); + } + + // Results + if (PopupOnComplete) + { + if (Result == 0) + QMessageBox::information(this, "Success", "Extracted pak successfully!"); + else + QMessageBox::warning(this, "Error", "Couldn't extract pak"); + } +} diff --git a/src/Editor/CStartWindow.h b/src/Editor/CStartWindow.h index 283fac4f..07a9c5cb 100644 --- a/src/Editor/CStartWindow.h +++ b/src/Editor/CStartWindow.h @@ -38,9 +38,12 @@ private slots: void on_actionLaunch_model_viewer_triggered(); + void on_actionExtract_PAK_triggered(); + private: void FillWorldUI(); void FillAreaUI(); + void ExtractPackage(const QString& rkPath, bool PopupOnComplete); }; #endif // PWESTARTWINDOW_H