Help:Setting up tools
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. Since BotW uses a lot of Nintendo's own file formats, you'll need special tools to be able to edit them.
Common requirements
Python
Many of the tools for these formats require Python 3.6+ (64 bit version) to be installed.
On Linux, Python 3 is 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]
Tools
Yaz0
Many files in the game are compressed with Yaz0. Compressed files generally have the letter s
prefixed to their file extension.
Template:Tool section
AAMP
AAMP is used for configuration files, such as actor parameters, the world configuration (climate, lighting, ...), etc. Template:Tool section Unlike most other files, AAMP files are exactly the same on both Wii U and Switch.
BFRES
BFRES files contain the game's animations, models and textures. Tutorials on how to edit these for Wii U can be found in Fooni's Tutorials.
.sbfres
files contain models..Tex1.sbfres
files contain textures (Wii U)..Tex2.sbfres
files contain mipmaps for textures (Wii U). Since we can't edit these on Wii U yet, they need to be disabled..Tex.sbfres
files contain both textures and mipmaps (Switch). Unlike on Wii U, mipmaps don't cause any problems here.
BFEVFL
BFEVFL is used for in-game events (which includes things like talking to people and also full-blown cutscenes). Follow the instructions at Help:Tools/EventEditor.
BYML
BYML files contain game parameters for actors, map units, difficulty scaling config, etc. Template:Tool section
RSTB
The file ResourceSizeTable.product.rsizetable (referred to as the RSTB file) contains a list of size limits for almost every file in the game (calculated from the non-Yaz0-compressed file sizes). If you edit a file to make its filesize bigger, you'll need to edit this file to prevent errors.
SARC
SARC archives contain collections of other files and folders, like .zip folders. Template:Tool section
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.