Commit Graph

18 Commits

Author SHA1 Message Date
755b6583f1 Applied a couple of Clippy lints 2026-03-11 14:21:10 -04:00
326bb56ece Refactored entire way that title content is handled
The ContentRegion has been entirely dissolved. Its fields were not particularly useful, as the content records were just a duplicate from the TMD, the file data itself, and then two integers that were assigned during construction and then literally never referenced.
Instead, the only copy of the content records now lives in the TMD, and the content is stored within the title directly since that was the only meaningful field. All the content related methods were moved from the ContentRegion struct over to the Title struct, since the content just lives there now.
This should hopefully make things much easier to deal with as you no longer need to worry about keeping two separate copies of the content records in sync.
This also might all change again in the future idk
2026-03-02 00:31:53 -05:00
0d34fbc383 Added iospatcher to lib and CLI
Everything but the no-shared flag is working right now. Getting no-shared to work properly will take a little more work because right now there's nothing to guarantee that the content records are synced between the TMD and content objects in a title. This means that updating any content in a title will result in the records being out of sync and the written TMD will not match the actual state of the content when it was dumped.
To mitigate this, I intend on making the content records in the content struct a reference to the content records in the TMD, so that they are the same object and therefore always in sync.
2026-02-27 19:05:24 -05:00
7c8484edaa Correct lots of weak warnings, fix CI 2026-02-22 23:46:49 -05:00
836d5e912a Made a bunch of fields that should be private private 2026-02-22 22:21:37 -05:00
a30a0f2c5b Added rustii CLI wad edit command and required library features
This required a LOT more backend work than I expected. But hey, some of this stuff is being done better than it was in libWiiPy/WiiPy, so that's a win in my book.
When changing both the Title ID and type of a WAD, the updated TID will only be written once (which also means the Title Key will only be re-encrypted once). This is an improvement over WiiPy where it will be updated as part of both changes.
Some TMD fields have been made private and moved to getter/setter methods only as they are actually in use now and should only be set through the correct means.
2025-04-29 22:03:55 -04:00
c2169f84c4 Implement thiserror for library errors 2025-04-03 19:09:56 -04:00
0bda6dabf3 Make is_dev for get_common_key() non-optional 2025-04-03 13:41:44 -04:00
3fd701cac6 Ported wad convert command from WiiPy 2025-04-02 19:51:19 -04:00
e147a953a5 Added basic doc strings to all major structs and functions
Some checks failed
Build rustii / build-linux-x86_64 (push) Has been cancelled
Build rustii / build-macos-arm64 (push) Has been cancelled
Build rustii / build-macos-x86_64 (push) Has been cancelled
Build rustii / build-windows-x86_64 (push) Has been cancelled
2025-03-28 14:02:03 -04:00
edf3af0f7c Added signature verification, info command now has WiiPy feature parity
Some checks are pending
Build rustii / build-linux-x86_64 (push) Waiting to run
Build rustii / build-macos-arm64 (push) Waiting to run
Build rustii / build-macos-x86_64 (push) Waiting to run
Build rustii / build-windows-x86_64 (push) Waiting to run
rustii CLI info command now displays the signing status of TMDs/Tickets/WADs like WiiPy does, and displays the ASCII TID for a title when applicable. This means that this command now has full feature parity with WiiPy.
2025-03-27 21:06:59 -04:00
8c7cd48dff Add WIP info command to rustii CLI, currently has a lot of blanks 2025-03-25 20:19:59 -04:00
839e33b911 Added fakesigning and fakesigning detection, command is in CLI 2025-03-25 18:28:37 -04:00
561ada3d92 Added support for dev WADs, Ticket now throws error for v1 Tickets 2025-03-20 10:38:33 -04:00
6ab9993dd9 Fixed content decryption, created base for real rustii CLI
rustii currently only supports unpacking WADs, with packing support being a work-in-progress.
2025-03-18 20:39:38 -04:00
83dc83d2d6 Added WAD parsing, allows for WAD packing/unpacking 2025-03-18 18:01:17 -04:00
93f2103763 Added content region parsing and content encryption/decryption 2025-03-18 09:13:34 -04:00
522e42a749 Basic TMD/Ticket structs, Title Key encryption handling 2025-03-17 20:05:01 -04:00