Help:Setting up tools: Difference between revisions
imported>Leoetlino No edit summary |
imported>Leoetlino No edit summary |
||
Line 28: | Line 28: | ||
=== AAMP === | === AAMP === | ||
{{tool table|category=Tools (AAMP)}} | |||
=== BFRES === | === BFRES === |
Revision as of 10:16, 14 October 2018
Breath of the Wild uses a very flexible, custom game engine. Many aspects of the game are not hardcoded and are instead configured by a large amount of files. To edit these files, a certain number of tools are required.
A note about file formats
The most common formats that one would want to be able to decode and also modify are:
- AAMP for actor parameters, world config (climate, lighting, ...), etc.
- BFRES for cosmetic (textures, models, ...) changes
- BFEVFL for in-game events (which includes things like talking to people and also full-blown cutscenes)
- BYML for actors, map units, difficulty scaling config, etc.
- Resource system when adding new resources or making existing files larger because of how the game works internally
- SARC for archives since many resource files are packed
Installing tools
In general, there are several tools you can use for a given file format. This guide will only mention the recommended tools; a more complete list of utils can be found in the article for each file format.
Some are unfortunately Windows-only, but many — especially the newer ones — are cross platform and work on Windows, macOS and Linux (with Linux even being the best supported platform for some tools).
Common requirements
Many of the tools for these formats require Python 3.6+ (64 bit version) to be installed.
On Linux, Python 3 is almost surely already installed. Just make sure you have a recent enough version (3.6+). Ubuntu 16.04 and Debian stretch are too old; the latest Ubuntu LTS (18.04) and rolling distros such as Arch and Debian sid have 3.6+ in their repos.
On Windows, follow the below instructions for installing Python:
- Uninstall any existing Python version to avoid conflicts.
- Download the Python 3.7 installer (latest version as of September 2018).
- Run the installer: do a system-wide install and tick the "add Python to environment variables / PATH" option.
- Verify that
py -3 --version
works and gives the correct version (3.6 or higher). [help]
AAMP
Tool | Cross-platform | Setup | Known issues |
---|---|---|---|
aamptool | Yes |
Download the tool from GitHub (note: builds are only provided for Windows). |
|
aamp | Yes |
Install the |
|
Wild Bits | Yes |
|
On some system configurations, launching with |
Switch Toolbox | No |
|
BFRES
This section is empty. You can help by adding to it. |
BFEVFL
Follow the instructions at Help:Tools/EventEditor.
BYML
Two choices: ninten-file-tool (for Wii U only) or byml-v2 (Wii U and Switch, and supports all new node types)
For ninten-file-tool:
- Install the Java runtime environment (JRE).
- Download the latest release from GitHub.
For byml-v2:
- Install the
byml
package. [CLI help]
RSTB
- Install the
rstb
package. [CLI help]
SARC
Three choices: BotW Unpacker (for Wii U only) or sarc (Wii U and Switch, heavily tested on BotW archives) or SARC Tool (Wii U and Switch). We strongly advise against using other tools because they do not handle file alignment properly.
For BotW Unpacker:
- Download the latest release from GitHub.
For sarc:
- Install the
sarc
package. [CLI help]
For SARC Tool:
- Install the
sarclib
package. [CLI help] - Install the
libyaz0
package. [CLI help] - Download the latest release from GitHub.
Map units
Map units can be edited directly by modifying the map unit BYMLs or with a graphical tool such as Ice-Spear.
For the first method, refer to #BYML.
For the second method, follow the instructions in the official repo for Ice-Spear builds.
Reverse engineering
To reverse engineer the game executable, it is strongly recommended to have a copy of IDA Pro 7.0+ because the main executable is fairly large and IDA is as of September 2018 the only serious option for analysing such binaries. It is also the only tool with a usable decompiler for AArch64 (Switch).
To get a copy of an IDC for Switch 1.5.0, ping leoetlino.