An open API service indexing awesome lists of open source software.

https://github.com/zeldamods/oead

Library for recent Nintendo EAD formats in first-party games
https://github.com/zeldamods/oead

cpp nintendo nintendo-switch pybind11

Last synced: 7 months ago
JSON representation

Library for recent Nintendo EAD formats in first-party games

Awesome Lists containing this project

README

          

======
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 1, 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)*:

* `gsheet `_ (Grezzo datasheet)

Getting started
===============

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 (x86-64 / 64-bit)
* Recent Linux distributions (x86-64, glibc and musl)
* macOS 10.14+ (x86-64 / arm64)

The following versions of Python are supported:

* CPython 3.6 to 3.12
* PyPy3.7 to 3.9

If you are using any other platform, you must build oead from source (refer to the next section).

.. 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

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``.

C++ usage
---------

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

Contributing
============

* Issue tracker: ``_
* Source code: ``_

This project is licensed under the GPLv2+ license.