Skip to content

v0.2.0: WAD Packing/Title Editing!

Compare
Choose a tag to compare
@NinjaCheetah NinjaCheetah released this 03 Apr 22:30
· 52 commits to main since this release
b3b10f9

libWiiPy v0.2.0 is here! With it comes one of the most important features, full support for WAD files! WADs can now be loaded and extracted, the content can be separated out and decrypted, and then all of that data can be reassembled back into a WAD. Essentially, libWiiPy now has full WAD extraction and packing support, and you can see a basic implementation of this over at the repository for libWiiPy-cli!

Changelog:

  • Entirely restructured wad.py, tmd.py, ticket.py, content.py
  • Added title.py for higher-level access to an entire WAD and all of its components without having to handle each one separately
  • Fixed a bug in content.py and removed a mitigation for that bug in crypto.py that also caused issues
  • Added support for for re-encryption of content and for that content to be loaded back into a ContentRegion
  • Added support for dumping TMD, Ticket, ContentRegion, and WAD objects back into raw data for outputting
  • Added support for creating blank objects of each type so that data can be loaded into them after creation, rather than forcing you to have that data beforehand (this allows title.py to actually function for creating a new WAD from loose files)
  • Removed unnecessary instance attributes that didn't need to be exposed and would become poisoned upon any changes
  • Removed some remaining instance methods that just retrieved instance attributes that you could already access
  • Replaced content.py's get_enc_content() and get_content() with get_enc_content_by_id()/get_enc_content_by_cid() and get_content_by_id() and get_content_by_cid() to allow getting content by either its content index or ID

Please be aware that for the most part, the API for libWiiPy v0.1.0 is entirely incompatible with libWiiPy v0.2.0. Fewer dramatic changes are likely to happen in the future, but this is just how prerelease software goes.

This release is also available on PyPI.