WiiUSharp 0.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package WiiUSharp --version 0.2.0
                    
NuGet\Install-Package WiiUSharp -Version 0.2.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="WiiUSharp" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WiiUSharp" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="WiiUSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WiiUSharp --version 0.2.0
                    
#r "nuget: WiiUSharp, 0.2.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.
#:package WiiUSharp@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WiiUSharp&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=WiiUSharp&version=0.2.0
                    
Install as a Cake Tool

WiiUSharp

.NET libraries for Wii U file formats and title concepts.

Not affiliated with or endorsed by Nintendo. Wii U is a trademark of Nintendo.

The NFS container format was worked out from nfs2iso2nfs by sabykos, piratesephiroth and FIX94. WiiUSharp.Nfs is a new implementation of that format, not a port of their code.

Packages

Package Targets Purpose
WiiUSharp net48, net6.0, net8.0, net10.0 Title identity and presentation: TitleId, GroupId, ProductCode, Region, Language, per-language names, and the ImageSlot / BootSound formats a title ships with.
WiiUSharp.Nfs net48, net6.0, net8.0, net10.0 The vWii disc container (content/hif_*.nfs): header, sparse part table, per-sector AES, 250 MB split.
dotnet add package WiiUSharp
dotnet add package WiiUSharp.Nfs

Usage

Title metadata

using WiiUSharp;

var game = new Game(
    new TitleId(TitleType.Demo, 0x12345678),
    new GroupId(0x5678),
    new ProductCode(ProductCode.EShop, "FAAE"))
{
    Region = Region.All,
    Names = LocalizedName.ForAllLanguages(new LocalizedName("Super Metroid")),
};

string id = game.TitleId.ToString();            // "0005000212345678"
ImageSlot icon = ImageSlot.Icon;                // iconTex.tga, 128x128, 32 bpp

NFS container

using WiiUSharp.Nfs;

var key = NfsKey.FromFile(@"title\code\htk.bin");

// read: a seekable stream of the decrypted payload, no temp file
using Stream payload = NfsReader.Open(@"title\content", key).OpenPayload();

// write: pack, encrypt and split in one pass
new NfsWriter(key).Write(payload, new DiscDataSpan(0xF800000, gameLength), @"out\content");

The payload is a Wii disc image with its game partitions decrypted. Converting to or from a normal ISO needs Wii partition crypto, which WiiUSharp.Nfs does not implement — supply an IPartitionCipher and use NfsConverter. See .docs/WiiUSharp.Nfs.md.

Building

dotnet build WiiUSharp.sln
dotnet test WiiUSharp.sln

Requires the .NET 10 SDK (global.json). dotnet pack -c Release produces the NuGet packages.

License

MIT — see LICENSE.

Product Compatible and additional computed target framework versions.
.NET 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 is compatible.  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 Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.8

    • No dependencies.
  • net10.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on WiiUSharp:

Package Downloads
WiiUSharp.Imaging

Turns PNG, JPEG, BMP, WebP or TGA sources into the exact TGA images a Wii U title needs (icon, boot screens, logo). Cross-platform via SkiaSharp.

WiiUSharp.Audio

Turns WAV, MP3 or AIFF into the bootSound.btsnd a Wii U title plays at launch: 48 kHz stereo 16-bit, trimmed to six seconds. Cross-platform via NAudio.Core and NLayer.

WiiUSharp.Nus

Packs an unpacked Wii U title (code, content, meta) into the installable NUS layout: FST, hashed and plain contents, fake-signed TMD and ticket. Downloads a title's package from the update server and unpacks it back into those folders with every hash verified.

WiiUSharp.Rpx

Reads and writes Wii U RPX/RPL executables: ELF sections with zlib compression and the per-section CRC table.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.10.0 90 9/20/2026
0.9.0 147 9/16/2026
0.8.0 145 9/16/2026
0.7.2 167 9/15/2026
0.7.1 173 9/15/2026
0.7.0 168 9/15/2026
0.6.0 155 9/14/2026
0.5.0 153 9/14/2026
0.4.0 127 9/14/2026
0.3.0 107 9/14/2026
0.2.0 84 9/14/2026
0.1.1 84 9/14/2026
0.1.0 85 9/14/2026

0.2.0: MetaXml and AppXml read and write a title's metadata files.