89 Commits

Author SHA1 Message Date
102da808e6
Add option to skip hash checks when unpacking a WAD 2024-07-25 21:14:12 -04:00
f7f67d3414
Rewrote most of the content module, code is much cleaner now
It also has more checks, so that should ensure that more errors get caught and aren't either ignored or allowed to fall through to the interpreter.
Also, part of this cleanup is that the content module now entirely operates on content indexes and not literal indexes, so this makes sure that WADs where the content and literal indexes don't match are handed properly
2024-07-25 17:15:26 -04:00
39eecec864
Fall back on key 0 when invalid, fix footer reading code 2024-07-25 13:09:01 -04:00
5f4fa8827c
Added new methods to TMD/Ticket/Title modules for changing title versions 2024-07-22 02:42:04 -04:00
e70b9570de
Fix handling WADs where content index != actual index in the array 2024-07-20 15:07:23 -04:00
bcd61b8a37
Slightly improve fakesign docstrings 2024-07-17 20:48:16 -04:00
a56fa6e051
Added methods to fakesign a TMD or Ticket 2024-07-17 20:44:04 -04:00
535de7f228
Read/write minor version in tmd module, allows for fakesigning 2024-07-10 20:18:15 +10:00
adac67b158
Change title version handling in tmd module
Now saving the version number (like v513) straight from the TMD and using that to dump the TMD, in case the converted version number (like v2.2) doesn't work right, which mostly applies to the system menu.
2024-07-10 08:11:14 +10:00
f96da98d23
Separate out components of a TMD signature
Not sure why this hadn't been done already given that the ticket module has always used separate properties for the signature type and data.
2024-07-06 20:15:18 +10:00
c5abf16f67
Finally fix content region size in WAD headers 2024-07-06 20:00:18 +10:00
45638769a9
Allow for extracting a U8 archive to an existing (empty) directory 2024-07-05 08:34:23 +10:00
1f731bbc81
Improve WAD handling, fixes IOS WADs made with other tools not extracting
The way content sizes are handled has been adjusted to allow IOS WADs (which have their content structured a bit differently) made via other tools to be extracted.
Writing out WADs has also been changed so that the content size in the header now matches the output of older tools.
2024-07-02 18:29:15 +10:00
df1ed559ef
Rewrote all docs in Markdown instead of the default reST 2024-06-25 22:57:09 -04:00
0861c20100
Privatized many functions and classes that should be private
Also changed some imports to import as _name so that stuff like dataclass() doesn't appear as available under libWiiPy.title
2024-06-23 18:28:32 -04:00
2d64f7961e
Added new ash module to archive subpackage, can decompress ASH files 2024-06-23 17:59:12 -04:00
7b7a3fbf51
Return FileNotFoundError if path doesn't exist in pack_u8() 2024-06-12 14:11:57 -04:00
6b8eda7823
Also automatically import crypto for the title subpackage 2024-06-07 23:36:20 -04:00
af6977a23c
Fix imports for new package structure 2024-06-07 23:30:02 -04:00
2fbb2b04f3
Fix nus module not being imported automatically 2024-06-07 23:21:03 -04:00
5743ee2695
Remove some pointless comments I noticed 2024-06-07 23:05:45 -04:00
b30017460b
Completed the U8 module, can now handle full folder packing 2024-06-07 22:30:34 -04:00
2755364472
Rewrote U8 extraction code entirely, now handles U8 files in all cases 2024-06-05 22:02:19 -04:00
1d77868cb1
Reworked U8 module and added initial support for dumping U8 archives back to bytes 2024-06-03 23:20:34 -04:00
ade4b68394
Entirely restructured package to make it more of a proper Python package
THIS IS A BREAKING COMMIT! ALL v0.2.X BASED PROJECTS WILL NEED TO BE UPDATED TO SUPPORT v0.3.X!
2024-06-02 22:18:05 -04:00
cbaafca0d1
Working basic code to extract a U8 archive 2024-05-29 12:48:44 -04:00
ede33dc503
Add highly experimental U8 handling module 2024-05-16 21:24:42 -04:00
6a81722ec5
Read/write reserved data in tmd.py, since it mattered for the DSi, it may matter here 2024-05-09 11:19:29 -04:00
ecc68d9e57
Updated definitions of TMD properties based on new information 2024-05-09 11:11:54 -04:00
045613216a
Replaced unnecessary BytesIO usages with standard variables 2024-05-06 19:34:18 -04:00
98666285db Improved comments, moved TID to IV conversion into a function in shared.py 2024-05-03 22:32:51 -04:00
ba320a29de Improved IV handling code for Title Keys in crypto.py 2024-05-03 17:27:52 -04:00
9890a6dbac Added function to crypto.py for encrypting a title key 2024-05-03 15:10:17 -04:00
c92a8096ea
Rename fallback_endpoint to wiiu_endpoint in nus.py 2024-05-02 22:20:59 -04:00
99a55a3de5
Added the ability to use the Wii U NUS servers to nus.py 2024-05-01 22:22:30 -04:00
4a3e9f8e7f Merge remote-tracking branch 'origin/main' 2024-04-30 23:07:22 -04:00
8eeebd1d75 Change endpoint URLs for NUS, this greatly improves download speed 2024-04-30 23:07:14 -04:00
3b7a2d09b0
Corrected small error in tmd.py, GameChannel is the "correct" name 2024-04-26 21:34:40 -04:00
a85beac602
Correctly pack boot2 WADs as type "ib" and not "Is" 2024-04-14 12:58:40 -04:00
338446efcb
Merge pull request #17 from NinjaCheetah/nus_download
Add NUS Downloading
2024-04-05 01:05:43 -04:00
ccbc2e262b
Rewrote nus.py to be functions instead of an NUSDownloader class because the class was unnecessary and made things more complex 2024-04-05 00:09:19 -04:00
rmc
17a894dc0d
Add support for boot2 WADs
This is the hard work they pay me for.
2024-04-03 23:22:23 -04:00
fa6c9eb740
Added nus.py for handling NUS downloads, more or less completed already 2024-04-03 22:59:36 -04:00
e85eae567a
Improved docstrings and made them all much more consistent across the project 2024-04-03 18:05:12 -04:00
b9edeb160d
Remove legacy fix in crypto.py that is no longer needed and was causing issues with encryption 2024-04-02 18:14:24 -04:00
57fb0576e9
WADs can now be packed properly via title.py or low-level methods 2024-04-01 22:16:42 -04:00
640ca91716
Allow creating blank objects for WADs, TMDs, Tickets, ContentRegions, and Titles to make WAD packing possible 2024-03-31 23:38:52 -04:00
142a121fa9
Added methods to wad.py to allow changing a WAD's data
Also added methods to title.py to allow dumping a full WAD. Some attributes were also removed from wad.py, because the offsets would become poisoned if any changes were made to the content sizes, and they therefore should not be read.
2024-03-30 02:13:34 -04:00
8026fc4fa3
Added methods to set content in both enc and dec form to content.py 2024-03-29 23:40:13 -04:00
379359c089
Added methods for getting enc and dec content by their Content IDs 2024-03-29 20:35:44 -04:00