Skip to content

release notes 1.0.0

drpetersonfernandes edited this page Aug 15, 2026 · 1 revision

RVZSharp 1.0.0 Release Notes

A pure managed .NET library and CLI for reading/writing Dolphin RVZ disc images and decoding the legacy GameCube/Wii formats — byte-for-byte, cross-checked against real games and the official No-Intro SHA-1s.

dotnet add package RVZSharp

What's included

  • RVZ/WIA reader — full container validation (magic, versions, every SHA-1, structure rules) and random-access decoding back to the original disc image, byte-for-byte
  • Legacy decoders — GCZ, CISO/WBI, WBFS (incl. split files), TGC, NFS, plain ISO — all auto-detected through one Blob.Open(...)
  • RVZ writer — converts any supported image to RVZ like Dolphin does: all five codecs (None, BZip2, LZMA1, LZMA2, Zstd incl. negative "fast" levels), chunk sizes 32 KiB–4 MiB, PRNG-junk packing with seed recovery, --scrub, progress reporting and cancellation
  • Wii partitions — SHA-1 hash trees (h0/h1/h2), hash exceptions, AES-128-CBC — decrypted/re-encrypted exactly like Dolphin produces
  • Targets: net8.0, net9.0, net10.0 — 100% managed, no native code
  • Fully documented API — XML docs on every public/internal type and member (shipped in the package)

Quick start

using RVZSharp;
using RVZSharp.Blobs;

using var blob = Blob.Open(@"game.rvz");   // any format, auto-detected
using var reader = RvzReader.Open(file);
var iso = reader.ReadFully();              // byte-exact ISO

using var output = File.Create(@"game.rvz");
RvzWriter.Write(Blob.Open(@"game.iso"), output,
    new RvzWriteOptions { Compression = CompressionType.Zstd, CompressionLevel = 5 });

CLI (rvzsharp):

rvzsharp header  -i game.rvz
rvzsharp verify  -i game.rvz -a sha1
rvzsharp convert -i game.iso -o game.rvz -f rvz -c zstd -l 5 -b 131072

Trust, verified

  • 410 tests — 313 synthetic round-trips (~30 s) plus a 97-test real-file suite decoding actual GameCube/Wii RVZ images against their official No-Intro DAT SHA-1s and re-encoding them back to the same hash, on machines with the games mounted (F:\Nintendo GameCube / F:\Nintendo Wii)
  • Audited against Dolphin's implementation and the rvz-1.0.3 Go reference; every divergence pinned by a regression test
  • Cross-platform: single-file self-contained binaries for Windows and Linux (x64 + arm64); the library runs on any platform the runtime supports

Install & documentation

NuGet RVZSharp 1.0.0
Docs the docs/ wiki — format specs, library API, CLI reference
Repository github.com/purelogiccode/RVZSharp

License

GPL-2.0-or-later — the RVZ/WIA format logic derives from Dolphin, and the library is licensed under the same terms Dolphin uses. All dependencies and third-party components (MIT LZMA decoder port, MIT/public-domain runtime codecs, BSD Go reference) are credited in THIRD-PARTY-NOTICES.md.

Assets

File Size
rvzsharp_v1.0.0_win-x64.zip 31.97 MB
rvzsharp_v1.0.0_win-arm64.zip 30.57 MB
rvzsharp_v1.0.0_linux-x64.zip 31.92 MB
rvzsharp_v1.0.0_linux-arm64.zip 30.08 MB

Clone this wiki locally