From 67e93d73419cc507a0fe4de54e810d19dff0fbfc Mon Sep 17 00:00:00 2001 From: NinjaCheetah <58050615+NinjaCheetah@users.noreply.github.com> Date: Wed, 6 Mar 2024 08:53:03 -0500 Subject: [PATCH 1/4] Update README.md --- README.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e22ceb0..7c8daf7 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,24 @@ # libWiiPy -libWiiPy is a port of the project [libWiiSharp](https://github.com/TheShadowEevee/libWiiSharp), originally created by `Leathl`, now maintained by [@TheShadowEevee](https://github.com/TheShadowEevee), back to Python after it was created by porting [Wii.py](https://github.com/grp/Wii.py) to C#. +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. -### Why port this again instead of just updating Wii.py? -This is a really good question. Frankly, a lot of it comes from the fact that I am inexperienced with all of this Wii stuff. Attempting to recreate the features of libWiiSharp in Python with all of the freedom to do that however I see fit makes it a lot easier for someone like me to make this work. The code for Wii.py is also on the older side and is just written in a way that I can't easily understand. It's helpful as a reference here and there, but I mostly want to write this library in a unique way. +libWiiPy is inspired by [libWiiSharp](https://github.com/TheShadowEevee/libWiiSharp), originally created by `Leathl`, now maintained by [@TheShadowEevee](https://github.com/TheShadowEevee). libWiiSharp is absolutely the way to go if you need a C# library for Wii files. -I also want to package this as a proper PyPI package, and starting with a clean slate will make that a lot easier as well. +**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](https://github.com/NinjaCheetah), [@rvtr](https://github.com/rvtr), and any other GitHub contributors. + +# Usage +A wiki, and in the future a potential documenation site, is being worked on, and can be accessed [here](https://github.com/NinjaCheetah/libWiiPy/wiki). 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. +```sh +pip install -U libWiiPy +``` +Our PyPI project page can be found [here](https://pypi.org/project/libWiiPy/). + +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: +```sh +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! @@ -24,12 +38,8 @@ 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](https://wiibrew.org). -## Special Thanks from libWiiSharp -- Xuzz, SquidMan, megazig, Matt_P, Omega and The Lemon Man for Wii.py -- megazig for his bns conversion code (bns.py) -- SquidMan for Zetsubou -- Arikado and Lunatik for Dop-Mii -- Andre Perrot for gbalzss +## 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 From 9751ea0d2eb373f4d7ca71ca08e5dca9df70fe8e Mon Sep 17 00:00:00 2001 From: NinjaCheetah <58050615+NinjaCheetah@users.noreply.github.com> Date: Wed, 6 Mar 2024 08:57:23 -0500 Subject: [PATCH 2/4] Added dependencies to pyproject.toml --- pyproject.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e09d5a3..090c31a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ authors = [ { name="NinjaCheetah", email="ninjacheetah@ncxprogramming.com" }, { name="Lillian Skinner", email="lillian@randommeaninglesscharacters.com" } ] -description = "A Wii-related library for Python" +description = "A modern Python library for handling files used by the Wii" readme = "README.md" requires-python = ">=3.10" classifiers = [ @@ -13,6 +13,9 @@ classifiers = [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] +dependencies = [ + "pycryptodome", +] [project.urls] Homepage = "https://github.com/NinjaCheetah/libWiiPy" From 522f3709713eb708b338e92b427599aaf07017fc Mon Sep 17 00:00:00 2001 From: NinjaCheetah <58050615+NinjaCheetah@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:36:35 -0500 Subject: [PATCH 3/4] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 7c8daf7..4b25b46 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +![libWiiPy](https://github.com/NinjaCheetah/libWiiPy/assets/58050615/d2db5ad6-8591-488c-aa47-c9e3bcb222b5) # 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. @@ -48,3 +49,7 @@ Thank you to all of the contributors to the documentation on the Wiibrew pages t - [Title metadata](https://wiibrew.org/wiki/Title_metadata), for the documentation on how a TMD is structured - [WAD files](https://wiibrew.org/wiki/WAD_files), for the documentation on how a WAD is structured - [IOS history](https://wiibrew.org/wiki/IOS_history), for the documentation on IOS TIDs and how IOS is versioned + +### One additional special thanks to [@DamiDoop](https://github.com/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. + From 34354ad55775fafa4978d85b3f5ced8587d42a01 Mon Sep 17 00:00:00 2001 From: NinjaCheetah <58050615+NinjaCheetah@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:39:24 -0500 Subject: [PATCH 4/4] Made README banner just a bit shorter --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b25b46..6179834 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![libWiiPy](https://github.com/NinjaCheetah/libWiiPy/assets/58050615/d2db5ad6-8591-488c-aa47-c9e3bcb222b5) +![libWiiPy](https://github.com/NinjaCheetah/libWiiPy/assets/58050615/80093c68-b86e-4b96-87b7-db3855382ca8) # 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.