Commit graph

108 commits

Author SHA1 Message Date
Alex Barney
a005b40022 Build updates
Use the version in the .csproj if there is no local git repository.
Always use Windows line endings in codegen output.
Update build dependency versions. We're still using GitVersion 5.1.3 because of https://github.com/nuke-build/nuke/issues/509.
2020-08-15 23:34:48 -07:00
Alex Barney
6bab1d9273 Support extracting INI binaries embedded in the kernel 2020-08-12 14:27:58 -07:00
Alex Barney
8491ec2117 Add Package2StorageReader and InitialProcessBinaryReader 2020-08-12 14:27:58 -07:00
Alex Barney
81340027fc Rename FsService to FsSrv 2020-08-07 18:32:01 -07:00
Alex Barney
37251968c0 Add FlatMapKeyValueStore with tests 2020-08-07 10:02:50 -07:00
Alex Barney
f02c84e8dd Add ReferenceCountedDisposable<T>
This class is meant to be used in the same types of places std::shared_ptr is used but with manual instead of automatic ref counting.

SubStorage now uses the class to optionally dispose its base storage object.
2020-07-06 11:43:48 -07:00
Alex Barney
88983d39e5 Remove use of code that involves reflection
This allows over 40% of the CoreRT native binary size to be removed by removing reflection capabilities.

The "--noreflection" option for the build script can be used to build hactoolnet with no reflection.

The Linux build won't always work because creating a new thread for the progress bar runs into some issue with EventSource being removed.
2020-06-27 16:28:32 -07:00
Alex Barney
33af34cefc Rewrite IndirectStorage 2020-06-25 15:26:55 -07:00
Alex Barney
9589f681a6 Add a bucket tree builder 2020-06-19 22:01:22 -07:00
Alex Barney
0c06d9e0b3 Implement most of Nintendo's bucket tree code 2020-06-19 22:01:22 -07:00
Alex Barney
9ec00eed3b
Merge pull request #146 from Thealexbarney/fs-classes
Change the file system accessor interfaces to abstract classes
2020-06-14 20:19:56 -07:00
Alex Barney
49d42c5d1f Fix some checks being ignored in savedata classes
- Return an error when an allocation table seek fails
- Fix a copy/paste bug to properly error when resizing an AllocationTableStorage with not enough free space
2020-06-10 16:27:43 -07:00
Alex Barney
ef1481b04c Replace old fsa classes with new ones 2020-06-07 15:23:51 -07:00
Alex Barney
7c9584a6af Add new IFileSystem and IDirectory 2020-06-06 22:48:20 -07:00
Alex Barney
3de2a4b90b Update MyGet package publishing 2020-06-04 11:17:30 -07:00
Alex Barney
8d5e24d061 Ensure csv column counts are consistent 2020-05-12 19:02:48 -07:00
VolcaEM
7f0afbe9db Add some results codes
The result codes were taken from Switchbrew (switchbrew.org/wiki/Error_codes)
The names are consistent with those of https://github.com/Ryujinx/Ryujinx/pull/1202
2020-05-02 18:33:03 -07:00
Alex Barney
e80be498e5 Add a simple service manager and HorizonClient class
Modifies bdat to use the HorizonClient and adds an ArpClient. The arp server still needs to be provided.
2020-04-23 17:49:15 -07:00
Alex Barney
ef36568a8d Implement DeliveryCacheFileService and supporting code 2020-04-10 10:54:37 -07:00
Alex Barney
da78e7e8ce Add BCAT storage skeleton 2020-04-07 00:22:12 -07:00
Alex Barney
e5c851e7a3 Add KipReader class and add kip decompression to hactoolnet 2020-03-29 22:12:00 -07:00
Alex Barney
9cc60e22ec Add loader and libhac results 2020-03-26 22:45:59 -07:00
Alex Barney
b8b2c26457 Tweak duplicate result detection 2020-03-23 16:04:49 -07:00
Alex Barney
bc769d7454 Update build dependencies 2020-03-23 09:49:18 -07:00
Alex Barney
84cb7cd6b1 Check for duplicate Results when doing codegen 2020-03-23 09:37:50 -07:00
Alex Barney
f44b09ec1f Add some Results 2020-03-23 09:10:55 -07:00
Alex Barney
0ab96f67bf Add new functions to existing classes deriving from IFileSystem 2020-03-21 23:37:32 -07:00
Alex Barney
ce54ae111c Add MultiCommitManager
- Recovering from an interrupted commit isn't implemented yet
2020-03-21 22:44:38 -07:00
Alex Barney
036e048208 Finish OpenFileSystemWithId enough to work with most content 2020-03-10 15:07:06 -07:00
Alex Barney
c141b72912 Use U8Span in IFileSystem instead of string 2020-03-08 01:00:02 -07:00
Alex Barney
7ce9ea09e6 Misc build updates 2020-02-29 01:36:23 -07:00
Alex Barney
24f293c27a Add names to Results missing them 2020-02-27 23:31:38 -07:00
Alex Barney
14dd2190a5 Add a default, reflection-less Result name resolver 2020-02-27 11:33:39 -07:00
Alex Barney
53c8dceb87 Add XML docs and a header to the Result files 2020-02-26 14:45:58 -07:00
Alex Barney
27618bbc45 Indent results based on hierarchy 2020-02-26 00:55:53 -07:00
Alex Barney
07d8b7c21e Add results found in a Unity game 2020-02-25 17:32:30 -07:00
Alex Barney
5345d2747e Generate Results from a .csv file 2020-02-24 14:45:51 -07:00
Alex Barney
857bde67ee Simplify CoreRT build 2020-01-17 00:20:24 -07:00
Alex Barney
e8bef8af6a
Update SourceLink package/info and target .NET Core 3.1 with hactoolnet (#106)
Make hactoolnet target the LTS .NET Core version.
LibHac still targets .NET Core 3.0.
2019-12-30 23:05:29 -07:00
Alex Barney
5e4ea459cb Update var usage based on ReSharper "when apparent" rules 2019-12-28 15:16:21 -07:00
Alex Barney
57586d75fd
Target netstandard2.1 and netcoreapp3.0 (#99)
.NET Core 2.1 introduced some runtime changes to support Span<T> and ByReference. Along with this comes the ability to do things like reinterpret memory as a different type. In .NET Framework the garbage collector couldn't track these references. These features proved useful enough that support for .NET Framework was dropped.

* Target netstandard2.1 and netcoreapp3.0
* Build: Zip native builds. Put version in zip filename
* Always build native exe on AppVeyor
2019-11-29 13:11:04 -06:00
Alex Barney
f304f664f4 Build for the current OS when doing a CoreRT build 2019-11-27 20:03:47 -06:00
Alex Barney
526864c456 Update build and test dependencies 2019-11-26 20:47:05 -06:00
Alex Barney
be907ce4bb
Target .NET Core 3.0 (#85)
* Target .NET Core 3.0

* Update build and test project packages

* Update AppVeyor build image
2019-10-14 21:10:53 -05:00
Alex Barney
9d813ade18
Use .NET Framework reference assemblies from NuGet (#77)
* Use .NET Framework reference assemblies from NuGet

* Update build packages. Specify --no-build when publishing

* Don't sign on Linux
2019-08-09 20:29:06 -05:00
Alex Barney
7b8c3f0b4f
Add .NET Standard 2.0 target (#73)
* Add .NET Standard 2.0 target

* Update dependencies
2019-07-15 14:10:48 -05:00
Alex Barney
b361567977
Add CoreRT build option (#63) 2019-06-06 17:15:43 -05:00
Alex Barney
a7391afa9c Fix build parameter variables 2019-05-30 21:00:22 -05:00
Alex Barney
5a4b56efad Update build dependencies 2019-05-30 20:21:58 -05:00
Alex Barney
cc9ca448f0
Add fstrim capability to savedata (#54)
* Properly commit version 4 savedata. Remove null span checks

* Add FsTrim to IntegrityVerificationStorage

* Remove dotsettings file

* Add trimming to all savedata layers
2019-04-26 09:48:57 -05:00
Alex Barney
22416f66bf Modify build script naming convention 2019-04-19 16:13:07 -04:00
Alex Barney
093d88a58e Don't set PathMap on standard builds 2019-03-15 12:27:43 -05:00
Alex Barney
5ec829915d Tweak AppVeyor build version 2019-02-16 20:50:41 -06:00
Alex Barney
199dbf7543 Tweak pre-release package version 2019-02-16 20:34:01 -06:00
Alex Barney
b68261a092
Build script updates (#33)
- Make generated NuGet packages deterministic.
- Add a signing option to the build script.
- Set versions for pre-release builds.
- Publish packages to a MyGet feed.
- Make Windows-produced artifacts match Linux-produced ones
2019-02-16 19:03:56 -06:00
Alex Barney
b8b57c9fb7 Add LayeredFileSystem 2019-01-17 22:38:28 -06:00
Alex Barney
71c4e6746b Begin implementing IFileSystem 2019-01-17 22:38:28 -06:00
Alex Barney
bb14125542
Add build script (#20) 2018-11-21 22:57:18 -05:00