* remove ZAPD submodule * git subrepo clone https://github.com/zeldaret/ZAPD.git tools/ZAPD subrepo: subdir: "tools/ZAPD" merged: "ca229f19" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "ca229f19" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * git subrepo clone https://github.com/simonlindholm/decomp-permuter.git tools/decomp-permuter subrepo: subdir: "tools/decomp-permuter" merged: "1e4b85a7" upstream: origin: "https://github.com/simonlindholm/decomp-permuter.git" branch: "main" commit: "1e4b85a7" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * Remove asm-differ * git subrepo clone https://github.com/simonlindholm/asm-differ.git tools/asm-differ subrepo: subdir: "tools/asm-differ" merged: "eaf72269" upstream: origin: "https://github.com/simonlindholm/asm-differ.git" branch: "master" commit: "eaf72269" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * remove asm-processor * git subrepo clone https://github.com/simonlindholm/asm-processor.git tools/asm-processor subrepo: subdir: "tools/asm-processor" merged: "85288fcd" upstream: origin: "https://github.com/simonlindholm/asm-processor.git" branch: "master" commit: "85288fcd" git-subrepo: version: "0.4.3" origin: "???" commit: "???" * remove .gitmodules file * Update REAMDE * Update warnings |
||
|---|---|---|
| .. | ||
| ZAPD | ||
| docs | ||
| lib | ||
| .clang-format | ||
| .gitignore | ||
| .gitrepo | ||
| Jenkinsfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| ZAPD.sln | ||
| copycheck.py | ||
README.md
ZAPD: Zelda Asset Processor for Decomp
Compiling
Dependencies
ZAPD needs a compiler with C++17 support.
ZAPD has the following library dependencies:
libpng
In a Debian/Ubuntu based environment, those could be installed with the following command:
sudo apt install libpng-dev
Building
Linux / *nix
ZAPD uses the clasic Makefile approach. To build just run make (or even better make -j for faster compilations).
You can configure a bit your ZAPD build with the following options:
OPTIMIZATION_ON: If set to0optimizations will be disabled (compile with-O0). Any other value compiles with-O2. Defaults to1.ASAN: If it is set to a non-zero then ZAPD will be compiled with Address Sanitizer enabled (-fsanitize=address). Defaults to0.DEPRECATION_OFF: If it is set to a non-zero then deprecation warnings will be disabled. Defaults to0.DEBUG: If non-zero, ZAPD will be compiled in development mode. This implies the following:- Debugging symbols enabled (
-g3). They are disabled by default. OPTIMIZATION_ON=0: Disables optimizations (-O0).DEPRECATION_OFF=1: Disables deprecation warnings.
- Debugging symbols enabled (
As an example, if you want to build ZAPD with optimizations disabled and use the address sanitizer, you could use the following command:
make -j OPTIMIZATION_ON=0 ASAN=1
Windows
This repository contains vcxproj files for compiling under Visual Studio environments. See ZAPD/ZAPD.vcxproj.
Invoking ZAPD
ZAPD needs a File parsing mode to be passed as first parameter. The options are:
e: "Extraction" mode.- In this mode, ZAPD expects a XML file as input, a folder as ouput and a path to the baserom files.
- ZAPD will read the XML and use it as a guide to extract the contents of the specified asset file from the baserom folder.
- For more info of the format of those XMLs, see the ZAPD extraction XML reference.
bsf: "Build source file" mode.- This is an experimental mode.
- It was going to be used to let you have XMLs that aren't just for extraction. Might get used, might not. Still need to experiment on that.
btex: "Build texture" mode.- In this mode, ZAPD expects a PNG file as input, a filename as ouput and a texture type parameter (
-tt). - ZAPD will try to convert the given PNG into the contents of a
uint64_tC array.
- In this mode, ZAPD expects a PNG file as input, a filename as ouput and a texture type parameter (
bren: "Build (render) background" mode.- In this mode, ZAPD expects a JPG file as input and a filename as ouput.
- ZAPD will try to convert the given JPG into the contents of a
uint64_tC array.
blb: "Build blob" mode.- In this mode, ZAPD expects a BIN file as input and a filename as ouput.
- ZAPD will try to convert the given BIN into the contents of a
uint8_tC array.
bovl: "Build overlay" mode.- In this mode, ZAPD expects an overlay C file as input, a filename as ouput and an overlay configuration path (
-cfg). - ZAPD will generate a reloc
.sfile.
- In this mode, ZAPD expects an overlay C file as input, a filename as ouput and an overlay configuration path (
ZAPD also accepts the following list of extra parameters:
-i PATH/--inputpath PATH: Set input path.-o PATH/--outputpath PATH: Set output path.-b PATH/--baserompath: Set baserom path.- Can be used only in
eorbsfmodes.
- Can be used only in
-osf PATH: Set source output path. This is the path where the.cand.hfiles will be extracted to. If omitted, it will use the value passed to--outputpathparameter.-gsf MODE: Generate source file during extraction. IfMODEis1, C source files will be generated.- Can be used only in
emode.
- Can be used only in
-crc/--output-crc: Outputs a CRC file for each extracted texture.- Can be used only in
eorbsfmodes.
- Can be used only in
-ulzdl MODE: Use "Legacy ZDisplayList" instead oflibgfxd. SetMODEto1to enable it.- Can be used only in
eorbsfmodes.
- Can be used only in
-profile MODE: Enable profiling. SetMODEto1to enable it.-uer MODE: Split resources into their individual components (enabled by default). SetMODEto non-1to disable it.-tt TYPE: Set texture type.- Can be used only in mode
btex. - Valid values:
rgba32rgb5a1i4i8ia4ia8ia16ci4ci8
- Can be used only in mode
-cfg PATH: Set cfg path (for overlays).- Can be used only in
bovlmode.
- Can be used only in
-rconf PATHRead Config File.-eh: Enable error handler.- Only available in non-Windows environments.
-v MODE: Enable verbosity. Currently there are 3 possible values:0: Default. Completely silent (except for warnings and errors).1: Information.2(and higher): Debug.
-wu/--warn-unaccounted: Enable warnings for each unaccounted block of data found.- Can be used only in
eorbsfmodes.
- Can be used only in
-tm MODE: Test Mode (enables certain experimental features). To enable it, setMODEto1.
Additionally, you can pass the flag --version to see the current ZAPD version. If that flag is passed, ZAPD will ignore any other parameter passed.