Help:Setting up tools: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
imported>Leoetlino
No edit summary
Line 1: Line 1:
''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.
''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 file formats ==
The most common formats that one would want to be able to decode and also modify are:
* [[AAMP]] for [[actor parameters]], [[normal.bwinfo|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 [[actor]]s, [[map unit]]s, [[difficulty scaling]] config, etc.
* [[RSTB]] 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
* [[Yaz0]] for compressed files


== Common requirements ==
== Common requirements ==
Line 25: Line 14:


== Tools ==
== Tools ==
=== Yaz0 ===
Many files in the game are compressed with [[Yaz0]]. Compressed files generally have the letter <code>s</code> prefixed to their file extension.
{{tool section|rec_tool=wszst}}
=== AAMP ===
=== AAMP ===
AAMP is used for configuration files, such as [[actor parameters]], the [[normal.bwinfo|world configuration (climate, lighting, ...)]], etc.
{{tool section|rec_tool=aamp}}
{{tool section|rec_tool=aamp}}
Unlike most other files, AAMP files are exactly the same on both Wii U and Switch.
Unlike most other files, AAMP files are exactly the same on both Wii U and Switch.
=== BFRES ===
=== BFRES ===
[[BFRES]] files contain the game's models and textures. Tutorials on how to edit these for Wii U can be found in [https://drive.google.com/drive/folders/1Z1_A3w0VvPHp22H_Yh_dSdzI5hr4OAv9 Fooni's Tutorials].
[[BFRES]] files contain the game's animations, models and textures. Tutorials on how to edit these for Wii U can be found in [https://drive.google.com/drive/folders/1Z1_A3w0VvPHp22H_Yh_dSdzI5hr4OAv9 Fooni's Tutorials].
* <code>.sbfres</code> files contain models.
* <code>.sbfres</code> files contain models.
* <code>.Tex1.sbfres</code> files contain textures (Wii U).
* <code>.Tex1.sbfres</code> files contain textures (Wii U).
Line 36: Line 29:


=== BFEVFL ===
=== 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:Setting up tools/EventEditor]].
Follow the instructions at [[Help:Setting up tools/EventEditor]].
=== BYML ===
=== BYML ===
BYML files contain game parameters for [[actor]]s, [[map unit]]s, [[difficulty scaling]] config, etc.
{{tool section|rec_tool=byml-v2}}
{{tool section|rec_tool=byml-v2}}
=== RSTB ===
=== 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.
{{tool section|rec_tool=rstb}}
{{tool section|rec_tool=rstb}}
=== SARC ===
=== SARC ===
[[SARC]] archives contain collections of other files and folders, like .zip folders.
{{tool section|rec_tool=sarc}}
{{tool section|rec_tool=sarc}}
=== Map units ===
=== Map units ===
Line 49: Line 47:


For the second method, follow [https://gitlab.com/ice-spear-tools/ice-spear-builds the instructions in the official repo for Ice-Spear builds].
For the second method, follow [https://gitlab.com/ice-spear-tools/ice-spear-builds the instructions in the official repo for Ice-Spear builds].
=== Yaz0 ===
{{tool section|rec_tool=wszst}}


== Reverse engineering ==
== Reverse engineering ==

Revision as of 19:17, 15 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. 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.