oead is a C++ library for common file formats that are used in modern first-party Nintendo EAD (now EPD) titles.
Python bindings for 3.6+ are also available.
Currently, oead only handles very common formats that are extensively used in recent games such as Breath of the Wild and Super Mario Odyssey.
AAMP (binary parameter archive): Only version 2 is supported.
BYML (binary YAML): Versions 2, 3, and 4 are supported.
Yaz0 (compression algorithm)
oead also supports a recent Grezzo format that is used in Link’s Awakening (Switch):
gsheet (Grezzo datasheet)
To install the Python module, simply run:
pip install oead
This will download and install a precompiled version of oead for the following platforms:
Windows, Python 3.6/3.7/3.8 (64-bit)
Recent Linux distributions, Python 3.8 (64-bit)
macOS 10.14 / 10.15, Python 3.8 (64-bit)
If you are using any other platform, you must build oead from source (refer to the next section).
Windows users must ensure that they have the latest Visual C++ 2019 Redistributable installed.
For more information, refer to the documentation.
Building from source¶
Building oead from source requires:
A compiler that supports C++17
Everything needed to build libyaml
First, clone the repository then enter the oead directory and run
git submodule update --init --recursive.
Building the Python module¶
To install the module, run
pip install -e .. This requires the following Python modules to be installed: setuptools, wheel
If you just want to build the Python module from source without installing it, run
python setup.py bdist_wheel.
Linking to the
oead target is sufficient to use the library.