OatmealDome.NinLib.Byaml 1.1.0

dotnet add package OatmealDome.NinLib.Byaml --version 1.1.0                
NuGet\Install-Package OatmealDome.NinLib.Byaml -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OatmealDome.NinLib.Byaml" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OatmealDome.NinLib.Byaml --version 1.1.0                
#r "nuget: OatmealDome.NinLib.Byaml, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OatmealDome.NinLib.Byaml as a Cake Addin
#addin nuget:?package=OatmealDome.NinLib.Byaml&version=1.1.0

// Install OatmealDome.NinLib.Byaml as a Cake Tool
#tool nuget:?package=OatmealDome.NinLib.Byaml&version=1.1.0                

OatmealDome's NintenTools.Byaml Fork

This is a fork of Syroot.NintenTools.Byaml on version 2.0.2.

While I have another fork of this project, it was not properly tracked by source control, and it implements deserialization of BYAML version 3 nodes incorrectly. Therefore, I decided to re-fork this project, move it under my own namespace (which also brings along the benefits I talk about in my BinaryData fork), clean it up, and re-implement support for newer BYAML versions.

Please note that while reading has been well tested, writing has not. There may be bugs.

Here's what's different:

  • BYAML versions 1, 2, 3, and 4 are all fully supported. It is possible to deserialize BYAML versions 5, but it is not possible to serialize it. Experimental deserialization is available for BYAML versions 6 and 7. (New node types may not be available.)
  • ByamlFile.Load() now automatically detects BYAML version, whether binary data is present with BYAML version 1, and what endianness the BYAML is stored in.
  • ByamlFile.Save() now uses ByamlSerializerSettings to hold serialization settings.
  • "Paths" has been changed to generic binary data (byte[]). Automatic deserialization of Mario Kart 8 path points (ByamlPathPoint) is no longer supported.
  • There is no longer a dependency on Syroot.Maths.
  • The classes that were part of the Serialization namespace were removed. The only serialization and deserialization type supported is Dynamic.

Original Readme

This is a .NET library to handle the BYAML Nintendo data file format, allowing you to read and store the files as either dynamic objects or strongly-typed with serialized classes similar to what the .NET XmlReader and XmlWriter provide.

The library is available as a NuGet package.

Status

It currently only supports version 1 without reference nodes, and at this time there are no plans to add support for these, and no ETA for the originally scheduled unification of the parsing logic.

Support

You can ask questions and suggest features on Discord aswell. Feel free to join the NintenTools channel on the Syroot server!

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net452 is compatible.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 180 4/24/2024

Update NuGet package and framework targets.