Commit Graph

1242 Commits

Author SHA1 Message Date
Matt Nadareski
e11a08b587 Port metadata functionality from ST 2026-03-24 18:03:01 -04:00
Matt Nadareski
5f0fdcfd8d Update to IO 2.0.0 2026-03-24 18:02:49 -04:00
Matt Nadareski
1053ff7f23 Add ConditionalHashEquals tests 2026-03-22 20:26:28 -04:00
Matt Nadareski
de6a08539a Wrong filename 2026-03-22 20:22:22 -04:00
Matt Nadareski
219392e3a0 Port DictionaryBase extensions from ST
Notably, this is missing the equality checking because ST introduces a new type called "ModelBackedItem", which is specifically a type backed by a DictionaryBase item, with extensions. It is very similar to a Wrapper, but has different common utility. If there is a way to migrate that here, then the equality methods can come here as well.
2026-03-22 20:22:04 -04:00
Matt Nadareski
2ade7495c7 This will be public anyway 2026-03-22 02:44:12 -04:00
Matt Nadareski
1acd448838 Make validation methods public 2026-03-22 02:05:43 -04:00
Matt Nadareski
a8ed7a38f8 Fix issue with 3DS key assignment 2026-03-22 01:58:11 -04:00
Matt Nadareski
5208fc3e33 Add removal comment 2026-03-22 01:53:40 -04:00
Matt Nadareski
3dfbd23867 Pass in fixed crypto key flag as bool 2026-03-22 01:52:26 -04:00
Matt Nadareski
994a366770 Put initial value generators in common region 2026-03-22 01:35:36 -04:00
Matt Nadareski
d1b061fac5 Port 3DS decrypt/encrypt in a functional manner 2026-03-22 01:34:36 -04:00
Matt Nadareski
6e73c93c89 Port PartitionKeys class from NDecrypt 2026-03-22 01:10:39 -04:00
Matt Nadareski
5544ab0b8a Add majority of data extensions tests, fix minor issues 2026-03-21 20:09:10 -04:00
Matt Nadareski
8bec2087eb Add removal note 2026-03-21 17:55:14 -04:00
Matt Nadareski
50e27f926d Use separate libraries as references in executables 2026-03-21 16:41:09 -04:00
Matt Nadareski
ecc88316bd Nicer readme linking 2026-03-21 16:34:52 -04:00
Matt Nadareski
7689c6dd07 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
2026-03-21 16:26:56 -04:00
Matt Nadareski
bec0aeb04c Another size read mismatch in IRD 2026-03-20 22:09:07 -04:00
Matt Nadareski
2f8ee5545e IRD game title is UTF-8 2026-03-20 22:07:35 -04:00
Matt Nadareski
015ad062ac Prefix sizes were being read incorrectly for IRD parsing 2026-03-20 22:01:13 -04:00
Matt Nadareski
ae6608e2a7 Allow GCF checksum header to have dummy0 value of 0 (fixes #69) 2026-03-19 16:18:24 -04:00
Matt Nadareski
ca78898e93 Move wrapper factory file after namespace change 2026-03-18 22:17:07 -04:00
Matt Nadareski
a6ee92da32 Fix build 2026-03-18 17:27:06 -04:00
Matt Nadareski
b2eb0b5e67 Extensions classes should be named as such 2026-03-18 17:15:03 -04:00
Matt Nadareski
685fadbfdf Move wrapper utility classes into Wrappers namespace 2026-03-18 16:55:48 -04:00
Matt Nadareski
638934e6b0 Attributes should live in the Models namespace where it's used 2026-03-18 16:49:14 -04:00
Matt Nadareski
cd2e170175 Move ported attribute to root 2026-03-18 16:42:23 -04:00
Matt Nadareski
68b5436f59 Wrappers to its own namespace 2026-03-18 16:37:59 -04:00
Matt Nadareski
b2f074048d Create extensions test project 2026-03-18 16:21:16 -04:00
Matt Nadareski
3147974879 Create OID test project 2026-03-18 16:20:00 -04:00
Matt Nadareski
1a53c093b8 OID to its own namespace 2026-03-18 16:18:10 -04:00
Matt Nadareski
e4d26d4d81 Put interfaces in respective namespaces 2026-03-18 16:13:02 -04:00
Matt Nadareski
b3e25bb6a6 Fix interface file names to match internal names 2026-03-18 16:02:40 -04:00
Matt Nadareski
37d5b79b96 Rename directories to visually help determine real namespace 2026-03-18 15:56:45 -04:00
Matt Nadareski
75fef90a14 Reader options apparently moved fully 2026-03-17 19:47:27 -04:00
Matt Nadareski
9389797448 Bump version 2.3.0 2026-03-15 20:23:35 -04:00
Matt Nadareski
8b7112d12f uint is more correct 2026-03-14 20:51:22 -04:00
Matt Nadareski
4add8f3e64 Update TODO for accuracy 2026-03-14 11:52:07 -04:00
Matt Nadareski
9e6c6af985 Fix missing section case, should never be hit 2026-03-14 11:24:29 -04:00
Matt Nadareski
c82b56d084 Better clarify comment 2026-03-14 11:23:29 -04:00
Matt Nadareski
ea4c51b9f2 Use first nonzero-sized section as overlay address basis 2026-03-14 11:20:40 -04:00
HeroponRikiBestest
463c3ba50d Accurately get OverlayAddress for UPX-compressed executables (#67)
* Add alternate path for OverlayAddress for upx-compressed executables, for benefit of extractions that need an accurate overlay address.

* Use SectionNames

* Update SabreTools.Serialization/Wrappers/PortableExecutable.cs

---------

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>
2026-03-14 11:18:19 -04:00
Matt Nadareski
92356903cc Format alternate title IDs too 2026-03-13 21:15:34 -04:00
Matt Nadareski
82ed800a32 Add formatted Title ID output 2026-03-13 21:01:38 -04:00
Matt Nadareski
81cd284a80 Add debug/retail-adjusted values as passthru 2026-03-13 13:32:33 -04:00
Matt Nadareski
1eba7403a3 Add Cxbx-Reloaded references 2026-03-13 12:31:33 -04:00
Matt Nadareski
b47af580e3 Add remaining certificate fields 2026-03-13 12:29:17 -04:00
Matt Nadareski
cff722ba67 Fix issues found during testing 2026-03-13 12:10:45 -04:00
Matt Nadareski
810338d011 Create XBE wrapper 2026-03-13 11:40:01 -04:00