AeonSake.NintendoTools
3.0.1
dotnet add package AeonSake.NintendoTools --version 3.0.1
NuGet\Install-Package AeonSake.NintendoTools -Version 3.0.1
<PackageReference Include="AeonSake.NintendoTools" Version="3.0.1" />
<PackageVersion Include="AeonSake.NintendoTools" Version="3.0.1" />
<PackageReference Include="AeonSake.NintendoTools" />
paket add AeonSake.NintendoTools --version 3.0.1
#r "nuget: AeonSake.NintendoTools, 3.0.1"
#:package AeonSake.NintendoTools@3.0.1
#addin nuget:?package=AeonSake.NintendoTools&version=3.0.1
#tool nuget:?package=AeonSake.NintendoTools&version=3.0.1
Nintendo Tools
General purpose extraction, parsing and deserialization tools for Nintendo file formats.
Installation
The library is available as NuGet
package on nuget.org and this project's GitLab Package Registry.
Requires .NET Standard 2.1
or later.
Features
The library consists of readers and writers for various Nintendo file formats, compression algorithms, and hashing algorithms, along some other utility functions.
File Formats
Currently, following Nintendo file formats are supported:
File Format | Read | Write |
---|---|---|
AAMP* | Yes | No |
ARC/U8 | Yes | Yes |
BCSV | Yes | Yes |
BMG | Yes | Yes |
BYML | Yes | No |
DARC | Yes | Yes |
MSBP | Yes | No |
MSBT | Yes | Yes |
NARC | Yes | Yes |
RARC | Yes | Yes |
SARC | Yes | Yes |
UMSBT | Yes | Yes |
[*] Not yet fully implemented.
All file readers and writers implement the IFileReader<T>
and IFileWriter<T>
interfaces. Some readers/writers also have additional configuration properties (such as the line-ending to use when encoding MSBT
files).
var reader = new MsbtFileReader();
reader.CanRead(readStream); //returns true if the stream can be read with that reader
var msbtFile = reader.Read(readStream);
var writer = new MsbtFileWriter {Newline = NewlineType.LF};
writer.Write(msbtFile, writeStream);
Compression Algorithms
Currently, following compression algorithms are supported: LZ10
, LZ11
, LZ77
, Yay0
, Yaz0
, ZLib
, ZSTD
. All compression algorithms implement the ICompressor
and IDecompressor
interfaces.
var decompressor = new Yaz0Decompressor();
decompressor.CanDecompress(readStream); //returns true if the stream can be decompressed with that algorithm
decompressor.Decompress(readStream, decompressedStream);
var compressor = new Yaz0Compressor();
compressor.Compress(decompressedStream, writeStream);
Hashing Algorithms
Currently, the following hashing algorithms are supported: CRC32
, CRC32C
, MMH3
. All hashing algorithms implement the IHashAlgorithm
interface.
var hashAlgorithm = new Crc32Hash();
var hash = hashAlgorithm.Compute(readStream);
Building from Source
Building this project requires .NET 5.0 SDK
or newer, or .NET Core 3.0
or newer. Refer to the full list of supported frameworks to see more.
Some packages are loaded from external sources (nuget.org) and are required for compilation. Make sure to run nuget restore
(or Restore NuGet packages
from inside Visual Studio) before building.
Credits and Licenses
The following list contains all external tools and libraries. The project itself is licensed under GPL-3.0.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- AeonSake.BinaryTools (>= 1.5.0)
- AuroraLib.Compression (>= 1.5.3)
- Crc32.NET (>= 1.2.0)
- Newtonsoft.Json (>= 13.0.4)
- System.Text.Encoding.CodePages (>= 9.0.9)
- ZstdSharp.Port (>= 0.8.6)
-
net6.0
- AeonSake.BinaryTools (>= 1.5.0)
- AuroraLib.Compression (>= 1.5.3)
- Crc32.NET (>= 1.2.0)
- Newtonsoft.Json (>= 13.0.4)
- System.Text.Encoding.CodePages (>= 8.0.0)
- ZstdSharp.Port (>= 0.8.6)
-
net8.0
- AeonSake.BinaryTools (>= 1.5.0)
- AuroraLib.Compression (>= 1.5.3)
- Crc32.NET (>= 1.2.0)
- Newtonsoft.Json (>= 13.0.4)
- System.Text.Encoding.CodePages (>= 9.0.9)
- ZstdSharp.Port (>= 0.8.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AeonSake.NintendoTools:
Package | Downloads |
---|---|
AeonSake.NintendoTools.Serializers
Serializers for the NintendoTools library. |
GitHub repositories
This package is not used by any popular GitHub repositories.