Skip to content

Repository files navigation

-   AAL#   -

C# IO library for BARS and other AAL file formats.

Supports BARS v101 and AMTA v4.

Usage

Reading a BARS File

using AalSharp.Bars;

byte[] data = File.ReadAllBytes("path/to/file.bars");
var bars = BarsFile.FromBinary(data, out var endianness);

Writing a BARS File

using AalSharp.Bars;

// Write to a stream
using FileStream fs = File.Create("path/to/output.bars");
bars.Write(fs, Endianness.Little);

// Write to a byte[]
byte[] data = bars.ToBinary(Endianness.Little, endianness: Entish.Endianness.Little);

Note

Writing to a pointer or Span<byte> can be done via the AalSharp.Bars.IO.BarsSerializer class

Benchmarks

Benchmarks for BotW/Sound/Resource/M_SceneStatic.bars (BotW 1.6.0 | 18.5 MB)

Method Mean Error StdDev Gen0 Gen1 Gen2 Allocated
Read 4.245 ms 0.1167 ms 0.3329 ms 1003.9063 941.4063 78.1250 18.34 MB
Write 8.929 ms 0.1780 ms 0.4161 ms 234.3750 156.2500 156.2500 19.38 MB
ToBinary 6.638 ms 0.1308 ms 0.2358 ms 359.3750 273.4375 273.4375 19.38 MB
SerializeNoAlloc 8.648 ms 0.1714 ms 0.3001 ms 78.1250 - - 1.35 MB

Install

AalSharp

NuGet NuGet

AalSharp.Bars

NuGet NuGet

NuGet

Install-Package AalSharp
Install-Package AalSharp.Bars

Build From Source

git clone https://github.com/EPD-Libraries/AalSharp.git
dotnet build AalSharp
dotnet build AalSharp.Bars

Special thanks to Yannik Marchand (kinnay) for the research on the AAL file formats.

About

C# IO library for BARS and other AAL file formats.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages