Help:Setting up tools

From ZeldaMods (Breath of the Wild)
Revision as of 19:17, 15 October 2018 by imported>Leoetlino
Jump to navigation Jump to search

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:

  1. Uninstall any existing Python version to avoid conflicts.
  2. Download the Python 3.7 installer (latest version as of September 2018).
  3. Run the installer: do a system-wide install and tick the "add Python to environment variables / PATH" option.
  4. 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.

Template:Tool section

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.