Features - Nanook/NKit GitHub Wiki
NKit 2 is a multiplatform (CLI + UI) disc image processor written in C#/dotnet8.0. Primarily aimed at game preservation; capable of reading multiple formats, containers and archives for various systems.
System Summary
The following features are currently supported. See the Roadmap document for other features awaiting implementation.
- GameCube
- Retail / Non-Retail (e.g. System images / Action Replay) / Customs
- Reads ISO / GCM / CISO / WBFS (+ split) / ISO.DEC / WIA / RVZ / NKit (ISO / GCZ)
- Writes Lossless ISO / CISO / WBFS / RVZ (ZStandard / LZMA/2 / Uncompressed)
- Writes Lossy (Regular) CISO / WBFS
- File Extract for all formats (Masks and Regex)
- Fix region hacks / Unscrub reordered files
- Truncated / Oversized images
- ISO Dedupe and reconstruct
- File system support
- NKit Scan Output
- Dedupe and recreate images
- Process from archives without temp file or caching ISO / GCM / CISO / WBFS / ISO.DEC / RVZ (All nkit created / most dolphin created)
- Optional Rename to matched dat item
- Verify against internal checksums (where available) / dat / nkit scan
- Wii
- Retail / RVT-R / RVT-H / Non-Retail (e.g. Freeloader) / Customs
- Reads ISO / CISO / WBFS (+ split) / WIA / RVZ / ISO.DEC / NKIT (ISO / GCZ)
- Writes Lossless ISO / CISO / WBFS / RVZ (ZStandard / LZMA/2 / Uncompressed)
- Writes Lossy (Regular) CISO / WBFS
- File Extract for all formats (Masks and Regex)
- Fix region hacks / Unscub / Correct Update Partition insert / add missing channel/VCs to match dat
- Missing + Filled Update Partitions - including system images with incrementing Int32s
- Truncated / Oversized images
- Scrub Detection
- Ticket / TMD Cert Validation and Fake signing detection
- ISO Dedupe and reconstruct
- File system support
- NKit Scan Output
- Read from archives without temp file or caching ISO / GCM / CISO / WBFS / ISO.DEC / RVZ (All nkit created / most dolphin created)
- Optional Rename to matched dat item
- Verify against internal checksums / dat / nkit scan
- WiiU
- Reads WUD / WUX / CDN / APP
- Writes WUD / WUX / APP
- File Extract for WUD / WUX / CDN / APP (Masks and Regex)
- Retail / Non-Retail (e.g. Dev Discs)
- Key lookup (files / zip)
- Key validation
- Ticket / TMD Cert Validation
- File system support
- NKit Scan Output
- Process from archives without temp file or caching WUD / WUX
- Optional Rename to matched dat item
- Verify against dat / nkit scan
- ISO9660 Formats
- Including PS1 / PS2 / PS3 / PSP / Dreamcast / Saturn / Sega CD / CD-i ...
- File Systems and Extensions UDF / ISO9660 / CD-XA / Joliet / Romeo / RockRidge / El Torito
- Reads ISO (Mode 1 / 2 +Form2) / Cue+Bin / GDI (Dreamcast)
- Reads ZSO / CSO (+CSO2) / JSO / DAX
- Reads CHD (all versions)
- Writes ZSO / CSO (+CSO2) - PS3 compressed as decrypted
- File Extract (Masks and Regex) - Form2 needs more work
- Key lookup - PS3 (files / zip)
- PS3 Key validation
- PS3 Encrypt / Decrypt
- PS3 3k3y header support
- PS3 IRD+Files -> ISO (Fix Task)
- PS3 IRD creation (FixExtract Task)
- Dreamcast - Convert between Redump(CUE) <-> Tosec(GDI) - including From CHD and Redump GDI
- All filesystems scan in one pass
- ECC / EDC Validation
- Multi Session
- NKit Scan Output
- Process from archives without temp file or caching
- Optional Rename to matched dat item
- Verify against dat / nkit scan
Archive Support
NKit is a forward reading processor. Where possible images can be processed from archives without saving to disk or extracting to memory. The following archives are supported:
- Rar
- Rar 1,2,3,4,5
- Split - a single file archive that's been split in to parts - file.001, file.002 ...
- Multi Volume / Part - file.rar, file.r01 ... - file.part001.rar, file.part002.rar ...
- Solid mode - single file, split, multi volume
- Zip / ZipX
- Single file
- Split - a single file archive that's been split in to parts - file.001, file.002 ...
- Multi Volume / Part - file.zip, file.z01 ... - file.zipx, file.zx01
- ZStandard and XZ compression is supported
- 7Zip
- Single file
- Split - a single file archive that's been split in to parts - file.001, file.002 ...
- Solid mode - single file, split
- ZStandard compression is supported
- GZip
- Single file
- Split - a single file archive that's been split in to parts - file.001, file.002 ...
Batch Processing
Images can be processed in batches or singularly. Images can reside in the filesystem or within archives. NKit will scan the paths / files provided and collate them all before processing. Split images, multi part archives and Cue/Bin/GDI are processed as if one whole image even within split archives.
NKit Scans
NKit creates .nkit files that contain a map of a full image. Scans are xml and are a logical hybrid view of image parts, layout and filesystem. Useful for quickly identifying differences between similar images and what those differences are. E.g. A corruption in a file within the filesystem, disc / partition headers, filled space etc.
Originally created for debugging then promoted to a full feature. Scanning images in different containers will produce the same scan if the encoded image data is equal. For example, a Wii encoded with WIT as scrubbed ISO, WBFS, CISO and WIA all create the exact same nkit scan. Making it useful to find duplicates and diffs. Likewise scanning a PS3 ISO in encrypted and decrypted formats will produce the same scans.
NKit scans are required by the dedupe feature to reconstruct an image on-the-fly. Exactly matching the source pre deduped image.
Result Output
Processed image results can be logged to a file where each line holds information about the image. CRCs and any verification results are included. This allows batch processing to be looked over easily upon completion.