/oead

Library for recent Nintendo EAD formats in first-party games

Primary LanguageC++GNU General Public License v2.0GPL-2.0

oead

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.

Features

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.
  • SARC (archive)
  • Yaz0 (compression algorithm)

oead also supports a recent Grezzo format that is used in Link's Awakening (Switch):

Getting started

Install with:

pip install oead

Warning

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:

  • CMake 3.12+
  • A compiler that supports C++17
  • Everything needed to build libyaml

Linking to the oead target is sufficient to use the library.

To build the Python bindings from source, run python setup.py bdist_wheel. This requires setuptools to be installed.

Contributing

This project is licensed under the GPLv2+ license.