A modern Python library for handling files used by the Wii
Project description
libWiiPy
libWiiPy is a modern Python 3 library for interacting with and editing files from 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, originally created by Leathl
, now maintained by @TheShadowEevee. libWiiSharp is absolutely the way to go if you need a C# library for Wii files.
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.
Features
This list will expand as libWiiPy is developed, but these features are currently available:
- TMD, ticket, and WAD parsing
- WAD content extraction, decryption, re-encryption, and packing
- Downloading free titles from the NUS
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 for the Inspiration and Previous 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file libwiipy-0.2.2.tar.gz
.
File metadata
- Download URL: libwiipy-0.2.2.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41e67cb3cac29774f6fc2f9b26f265130fc72b26b71ee773183cc8bb8d496edc |
|
MD5 | 6381049c23e8805290fab5f873376e71 |
|
BLAKE2b-256 | f5e90e68e79198fae5ff05c89b42c0dff70daf0e5e529925afea9f536f200506 |
File details
Details for the file libWiiPy-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: libWiiPy-0.2.2-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec2263d36de59e5d0e666aa8af3197eb0d83ef935cf528bcf1f73ad4a61a1a7f |
|
MD5 | f3c176f5e6ade28b4f3d7783f225efbd |
|
BLAKE2b-256 | 59321b3f89b4be62681f60910606e3482bdae1cd64f6d18f81084d02fd89a06e |