47 Commits

Author SHA1 Message Date
94e0be0eef
Added emunand info and install-missing commands to rustii CLI
These were grueling to port. There's just so much printing and format converting to deal with. Ugh. At least it's done now.
2025-05-03 23:43:02 -04:00
26138c02be
Added base for rustii CLI EmuNAND commands (mostly library-side)
The rustii CLI now offers setting decrypt/encrypt commands, as well as a WIP emunand install-title command. This command currently only supports installing single WADs and not a folder of WADs like WiiPy.
To make EmuNANDs happen, library modules for parsing and editing setting.txt, uid.sys, and content.map have been added and have feature parity with libWiiPy. The basics of the library EmuNAND module also exist, offering the code for title installation and not much else yet.
2025-05-01 19:55:15 -04:00
15947ceff3
Update README.md 2025-04-29 22:19:55 -04: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
481594345d
Use Rc<RefCell<T>>> for content_records so that they sync in a Title
When using a Title, the content_records value stored in the TMD and ContentRegion instances will now point to the same data, meaning that they stay in sync. Previously, you had to manually sync the content records between them as they were modified, and not doing so would cause problems when editing a WAD.
2025-04-27 21:30:31 -04:00
277c5d6439
Added rustii CLI commands to add and remove content from a WAD
Also added required library features to make this possible, again.
2025-04-27 15:25:47 -04:00
577d5a0efa
Added rustii CLI command to replace content in a WAD
Also added required library features to make this possible. Rust makes the whole "getting content's index from its CID" thing so much easier.
2025-04-25 14:45:38 -04:00
96ace71546
Added set_content/set_enc_content to load modified content into a ContentRegion
This means that the rustii CLI wad pack command is now actually useful, as it supports loading modified content.
2025-04-23 18:21:26 -04:00
66476e2c98
Added basic support for displaying info about U8 archives to rustii CLI 2025-04-17 20:33:44 -04:00
ea2e31756c
Added U8 archive packing command to rustii CLI 2025-04-17 20:07:40 -04:00
52e11795d3
Redesigned how U8 archives are represented in memory
This replaces the old 1D array with an actual directory tree that can be used to make packing, unpacking, and editing U8 archives much much easier than the old libWiiPy implementation.
2025-04-17 18:30:23 -04:00
7cef25d8f0
U8 archive unpacking command now functional 2025-04-09 09:18:29 -04:00
884657268b
Added single content download command to rustii CLI 2025-04-08 22:27:42 -04:00
5f578fbfd8
Updated README to better represent current features 2025-04-08 20:57:44 -04:00
be9148fcfa
Ported all NUS download functions from libWiiPy and corresponding CLI commands
Also adds the basics of U8 archive packing/unpacking, however they are not in a usable state yet and there are no working CLI commands associated with them.
2025-04-08 20:47:35 -04:00
e55edc10fd
Added ASH decompression, added corresponding CLI command
Also cleaned up some minor parts of the LZ77 (de)compression library and CLI code
2025-04-06 17:21:33 -04:00
42fd523843
Added LZ77 compression, added corresponding CLI command 2025-04-04 13:33:33 -04:00
e1190e1e58
Added LZ77 decompression, added corresponding CLI command 2025-04-03 23:06:56 -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
405df67e49
Fixed output filename creation for WAD convert command 2025-04-02 22:36:01 -04:00
74584b1ffd
Cleaned up error handling and duplicated code in info command 2025-04-02 22:15:40 -04:00
d9e8465f0c
Improved error handling for fakesign CLI command 2025-04-02 21:52:57 -04:00
85f3f028d4
Added proper error handling to WAD commands 2025-04-02 21:04:56 -04:00
3fd701cac6
Ported wad convert command from WiiPy 2025-04-02 19:51:19 -04:00
97fe838b8c
Fix for possible crash when getting info for some TMDs 2025-04-01 21:09:54 -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
444c3def54
Improved title version and region info in CLI
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-26 09:17:43 -04:00
ac1368053b
Added title size calculation methods (sizes now shown in info as well)
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
2025-03-25 21:33:41 -04:00
3178063a07
Filled in many info command blanks 2025-03-25 21:06:14 -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
1bcc004af7
Merge remote-tracking branch 'origin/main'
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-20 10:38:41 -04:00
561ada3d92
Added support for dev WADs, Ticket now throws error for v1 Tickets 2025-03-20 10:38:33 -04:00
6b21f03a54
Update README.md 2025-03-20 10:14:47 -04:00
5731b8d4d8
Double fix Actions macOS cross compile 2025-03-19 19:18:17 -04:00
d7dbaca479
Fix Actions macOS cross compile 2025-03-19 19:16:00 -04:00
098f695f1d
Run Actions for all platforms 2025-03-19 19:11:16 -04:00
2df9a180be
Create rust.yml 2025-03-19 18:55:52 -04:00
62f6e6c0ec
Added WAD packing command to rustii CLI
Also added lots of required library magic to make WAD packing possible. This includes the high-level Title object from libWiiPy, the ability to set content in a WAD, the ability to generate a WADHeader from a WADBody, and more.
2025-03-19 18:50:37 -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
247f120da4
Basic TMD/Ticket structs, Title Key encryption handling 2025-03-17 20:10:05 -04:00
522e42a749
Basic TMD/Ticket structs, Title Key encryption handling 2025-03-17 20:05:01 -04:00
fcde6831de
Initial commit 2025-03-16 21:50:59 -04:00