This projects implements parsers for various file formats can be found in Nintendo games. It has been written to support research, and it is also used in a viewer tool.
Installation
The package is currently not available on pip, but it can be installed as follows:
git clone https://github.com/kinnay/jungle.git jungle
cd jungle
pip3 install .
Testing
Every parser that is implemented in this package must be sound and complete. This means that, given an arbitrary file from a Nintendo game, decoding and reencoding that file must always produce the original file again.
This can be tricky to implement for some file formats (especially if Nintendo's tooling is inconsistent or has quirks), but it is a hard requirement for this repository. A test.py script has been written to verify this. If you come across a file in a game that should be supported by this repository, but fails the test, feel free to reach out on discord or contribute research.
Supported Formats
The following file formats are currently supported by this library:
| Library | Format | Extensions | Description |
|---|---|---|---|
| Multiple | BYAML | .byml / .byaml / .bgyml |
Binary YAML |
| AAL | BAATN | .baatn |
Audio attenuators |
| AAL | BAMETA | .bameta |
Audio metadata |
| AAL | BARS | .bars |
Audio resources |
| AAL | BARSLIST | .barslist |
Audio resource lists |
| AGL | PMAA | .bagl* |
Graphics parameters |
| CAS | BAEV | .baev |
Animation event archive |
| GFD | Gfx2 | .gtx / .gsh |
Textures and shaders |
| LMS | MSBP | .msbp |
Message projects |
| LMS | MSBT | .msbt |
Messages |
| NW4F | BFWAV | .bfwav |
Wave files |
| SEAD | SARC | .sarc |
Archives |
| SEAD | SZS | .szs |
Yaz0 compression |
| XLINK | SLINK | .slink |
Sound links |
For some file formats, only specific versions are currently supported.
Contributing
The best way to contribute is to reverse engineer file formats and provide documentation for them. New documentation can be submitted as a pull request to the Nintendo file formats wiki. Bug fixes and corrections to existing documentation are also more than welcome.
If you would like to chat about Nintendo's file formats in general, feel free to join the Discord server.
Metadata
Release files for jungle-package 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jungle_package-0.0.1.tar.gz | 51.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jungle_package-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 110.0 kB
Release files / jungle_package-0.0.1.tar.gz
| Download URL | jungle_package-0.0.1.tar.gz |
|---|---|
| Size | 51.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99f4eb49cd515721a710ca1e8afaff615253fc84dde410c05c7d33ae2fa54e37
|
|
BLAKE2b-256 checksum How to use checksums |
2f3eedaa9d9d82dce5e2d6786130346b4fbba4d7d8b20fb5dee1e2d68de100f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / jungle_package-0.0.1-py3-none-any.whl
| Download URL | jungle_package-0.0.1-py3-none-any.whl |
|---|---|
| Size | 58.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab6cc2a790d899f7672595b9c0f8ffa0c514da7dd2dd714247cb6a893d3dfaf7
|
|
BLAKE2b-256 checksum How to use checksums |
337281d0ddcfc29efd9b9b7df58c2145c026c49c9a9021b7d0e91e5823130783
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|