NKit/NKitFormat
The NKit Format is a non-lossy format for shrinking and restoring Wii and GameCube images. It supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these quite often error.
There are 2 NKit output formats, raw (iso) and compressed (gcz)
System | Format | Hardware Supported | Dolphin Supported | Restorable 1:1 | Notes |
---|---|---|---|---|---|
GameCube | nkit.iso | Yes | Yes | Yes | Same as compacted GameCube iso |
GameCube | nkit.gcz | No | Yes | Yes | GCZ is Dolphin's own block seekable compression format |
Wii | nkit.iso | No | Yes | Yes | RVT-H format only playable in Dolphin or a Dev Kit (Untested) |
Wii | nkit.gcz | No | Yes | Yes | RVT-H in GCZ playable in Dolphin only |
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform data is preserved in 256 byte blocks with a 4 byte header. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible possible.
Header
NKit places its header at 0x200 in the Wii and GameCube disc headers.
Offset | Length | Name |
---|---|---|
0x200 | 0x4 | NKit Header 'NKIT' |
0x204 | 0x4 | NKit Version ' v01' |
0x208 | 0x4 | Source image original CRC32 |
0x20C | 0x4 | NKit CRC - makes the NKit file CRC32 equal the source CRC at 0x208 (at 0x4 in GCZ) |
0x210 | 0x4 | Source image length |
0x214 | 0x4 | Forced Junk ID (doesn't match the disc ID - GameCube only) |
0x218 | 0x4 | Wii Update partition CRC32 if removed when converting |
NKit also modifies the Wii header to set the bytes at 0x60 and 0x61 to 0. This indicates to a Dev Kit and Dolphin that the encryption and hashes aren't present.