Skip to main content

A modern Python library for handling files used by the Wii

Project description

banner

libWiiPy

libWiiPy is a modern Python 3 library for handling the various files and formats found on the Wii. It aims to be simple to use, well maintained, and offer as many features as reasonably possible in one library, so that a newly-written Python program could reasonably do 100% of its Wii-related work with just one library. It also aims to be fully cross-platform, so that any tools written with it can also be cross-platform.

libWiiPy is inspired by libWiiSharp, which was originally created by Leathl and is now maintained by @TheShadowEevee. If you're looking for a Wii library that isn't in Python, then go check it out!

Features

This list will expand as libWiiPy is developed, but these features are currently available:

  • TMD and Ticket parsing (.tmd, .tik)
  • Title content decryption, re-encryption
  • Packing and unpacking WAD files (.wad)
  • Downloading titles from the NUS
  • Packing and unpacking U8 archives (.app, .arc)
  • Decompressing ASH files (.ash, both the standard variants and the variants found in My Pokémon Ranch)

Usage

A wiki, and in the future a potential documenation site, is being worked on, and can be accessed here. It is currently fairly barebones, but it will be improved in the future.

The easiest way to get libWiiPy for your project is to install the latest version of the library from PyPI, as shown below.

pip install -U libWiiPy

Our PyPI project page can be found here.

Because libWiiPy is very early in development, you may want to use the latest version of the package via git instead, so that you have the latest features available. You can do that like this:

pip install -U git+https://github.com/NinjaCheetah/libWiiPy

Please be aware that because libWiiPy is in a very early state right now, many features may be subject to change, and methods and properties available now have the potential to disappear in the future.

Building

To build this package locally, the steps are quite simple, and should apply to all platforms. Make sure you've set up your venv first!

First, install the dependencies from requirements.txt:

pip install -r requirements.txt

Then, build the package using the Python build module:

python -m build

And that's all! You'll find your compiled pip package in dist/.

Special Thanks

This project wouldn't be possible without the amazing people behind its predecessors and all of the people who have contributed to the documentation of the Wii's inner workings over at WiiBrew.

Special Thanks to People Behind Related Projects

  • Xuzz, SquidMan, megazig, Matt_P, Omega and The Lemon Man for creating Wii.py
  • Leathl for creating libWiiSharp
  • TheShadowEevee for maintaining libWiiSharp

Special Thanks to WiiBrew Contributors

Thank you to all of the contributors to the documentation on the WiiBrew pages that make this all understandable! Some of the key articles referenced are as follows:

  • Title metadata, for the documentation on how a TMD is structured
  • WAD files, for the documentation on how a WAD is structured
  • IOS history, for the documentation on IOS TIDs and how IOS is versioned

One additional special thanks to @DamiDoop!

She made the very cool banner you can see at the top of this README, and has also helped greatly with my sanity throughout debugging this library.

Note: While libWiiPy is directly inspired by libWiiSharp and aims to have feature parity with it, no code from either libWiiSharp or Wii.py was used in the making of this library. All code is original and is written by @NinjaCheetah, @rvtr, and any other GitHub contributors.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libwiipy-0.4.0.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

libWiiPy-0.4.0-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file libwiipy-0.4.0.tar.gz.

File metadata

  • Download URL: libwiipy-0.4.0.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for libwiipy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 7641072558b7d99d7e8d3fc1b0680ad5ec62d224359e039bcef9e28de9bdb1eb
MD5 29b9095d45ab8e657b29830ba53a9fb7
BLAKE2b-256 1d3251908f85f8c664e07a8b67f6258725a8d6e1fda84de0f6e75bb7b1bb8b96

See more details on using hashes here.

File details

Details for the file libWiiPy-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: libWiiPy-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for libWiiPy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12bba3cf423c0483b3b13f0974c1dde187dd7ff296c0e7f4ec1be31ed1e9d02f
MD5 5e02f02a7f1802eebf3a568cc2bf20dd
BLAKE2b-256 d0c2cb38bf0c9307c494e60123a51d628e414e6ce62f70bf75c21d79d2b10357

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page