https://wiki.gbatemp.net/w/api.php?action=feedcontributions&user=Nanook&feedformat=atomWikiTemp - User contributions [en]2024-03-28T08:45:47ZUser contributionsMediaWiki 1.24.3//wiki.gbatemp.net/wiki/NKit/Discs?diff=70982NKit/Discs2019-12-25T18:13:40Z<p>Nanook: </p>
<hr />
<div>NKit supports GameCube and Wii disc images. They are named .iso, but are Nintendo's own formats. This documentation will describe known layouts and focuses on key items that NKit uses or information that is not well documented elsewhere. Read the [[NKit/Glossary|Glossary]] for terminology. <br />
<br />
== Disc Information ==<br />
<br />
Here we will take a look at the parts of the Disc NKit is interested in. Wii will be the main focus as it's the most technical with more complexity. The GameCube disc is covered in the Partition Data section of this page as the contained data is basically a GameCube image. <br />
<br />
Note: Offset Addresses and lengths are denoted with the 0x prefix to indicate hexadecimal. <br />
<br />
Knowledge for the overall layouts was gained from code, Dolphin contributors and the docs below. This document will refer to them as Wii Docs and GameCube Docs. <br />
<br />
Wii Docs: https://wiibrew.org/wiki/Wii_Disc <br />
GameCube Docs: http://hitmen.c02.at/files/yagcd/yagcd/chap13.html <br />
<br />
Since the above documents were written the full catalogue of games has been released. Scans have been performed. This document will aim to point out confirmed facts where possible.<br />
<br />
== Disc Layout ==<br />
<br />
The table below shows a Wii disc with an extra channel partition. A typical Wii disc is items 1 to 7 only. Each partition has a header and a data section. 0x-------- denotes that the offset follows the previous item. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item No. !! Offset !! Length !! ID !! Name !! Wii Docs<br />
|-<br />
| 1 || 0x0|| 0x50000 || Game ID|| Disc Header || https://wiibrew.org/wiki/Wii_Disc#Header<br />
|-<br />
| 2 || 0x50000 || 0x20000|| || Update [Header] || https://wiibrew.org/wiki/Wii_Disc#Partition<br />
|-<br />
| 3 || 0x70000 || || RELS || Update [Data] || https://wiibrew.org/wiki/Wii_Disc#Partition_Data <br />
|-<br />
| 4 || 0x-------- || || || Gap || <br />
|-<br />
| 5 || 0xF800000 || 0x20000|| || Data [Header] || https://wiibrew.org/wiki/Wii_Disc#Partition<br />
|-<br />
| 6 || 0xF820000 || || [Game ID] || Data [Data] || https://wiibrew.org/wiki/Wii_Disc#Partition_Data<br />
|-<br />
| 7 || 0x-------- || || || Gap Junk || <br />
|-<br />
| 8 || 0x-------- || || || Channel [Header] || <br />
|-<br />
| 9 || 0x-------- || || _INS || Channel [Data] || <br />
|-<br />
| 10 || 0x-------- || || || Gap Junk || <br />
|}<br />
<br />
There are variants of this arrangement:- <br />
* Channel then Data partitions (reverse order) <br />
* Multiple channels (Virtual Console) + gap junk (items 8 to 10 would be repeated as 11+) <br />
* One series of games has a _WIN partition that contains the bulk of the data. It would be in place of the Channel in this above example <br />
<br />
<br />
The above table is an example the offsets of the various items specified in the [https://wiibrew.org/wiki/Wii_Disc#Partitions_information partition table]. The partition table is located in the disc header and should be used when parsing discs. <br />
<br />
<br />
Redump image scans show that unless they have been modified, official releases never deviate from the update partition being at 0x50000 and the first channel or data partition is at 0xF800000. There are a couple of service discs that have invalid update partitions. In this case they have an entry in the partition table, have a valid partition header and the partition data is encrypted with valid hashes. The data is just incrementing 32 bit values starting at 0x00000000. <br />
<br />
=== Disc Header ===<br />
<br />
The main items of interest in the disc header are: <br />
{| class="wikitable"<br />
|-<br />
! Item No. !! Offset !! Length !! Name <br />
|-<br />
| 1 || 0x0 || 0x4 || ID <br />
|-<br />
| 2 || 0x4 || 0x2 || Maker Code <br />
|-<br />
| 3 || 0x5 || 0x1 || Disc No <br />
|-<br />
| 4 || 0x6 || 0x1 || Disc Version <br />
|-<br />
| 5 || 0x20 || 0x40 || Title <br />
|-<br />
| 6 || 0x40000 || 0x120 ? || Partition Info - https://wiibrew.org/wiki/Wii_Disc#Partitions_information <br />
|-<br />
| 7 || 0x4E000 || 0x20 || https://wiibrew.org/wiki/Wii_Disc#Region_setting <br />
|}<br />
<br />
The NKit Format adds it's own [[NKit/NKitFormat#Header|items]] to the header in an area that is always empty – 0x200.<br />
<br />
=== Partition Header ===<br />
<br />
Most of the info in the [https://wiibrew.org/wiki/Wii_Disc#Partition partition header] are ignored by NKit. The following are used: <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item No. !! Offset !! Length !! Name<br />
|-<br />
| 1 || 0x2b4 || 0x4 || H3 Table Offset <br />
|-<br />
| 2 || 0x2b8 || 0x4 || Partition Data Offset <br />
|-<br />
| 3 || 0x2bc || 0x4 || Partition Size <br />
|-<br />
| 4 || || || H3 Table (pointed to by 0x2b4)<br />
|}<br />
<br />
The Partition Size is the size of the data partition including the hash sectors. The NKit format writes it as the size without the hashes and preserves the original size in the partition data at 0x210 (data address after dehashing).<br />
<br />
=== Partition Data ===<br />
<br />
The partition data is encrypted and split into blocks containing hash data. This section will cover the encryption, hashing then file system. <br />
<br />
==== Encryption ====<br />
<br />
The encryption covers the partition data only. NKit does not do anything special with it. The NKit format removes the encryption, when restoring, the encryption is reapplied. When recovering an image it encrypts any repaired data groups the standard way. Scrubbing wipes the encryption with a value – usually 00 or FF. NKit can preserve scrubbing when converting.<br />
<br />
==== Data (Hashes, Groups, Blocks and Sectors) ====<br />
<br />
This requires a high level overview of how the partition data is set out for clarity.<br />
* The partition data is split in to 2MiB groups <br />
* Each group is 64 32KiB blocks <br />
* Each block is 32 1KiB sectors <br />
* The first sector is the hash sector – H0, H1, H2 tables ([https://wiibrew.org/wiki/Wii_Disc#Encrypted Wii Docs])<br />
* Sectors 2 to 32 are data <br />
* Offsets for files and junk generation offsets ignore the hash sectors (group 2 data start offset would be 0x7c00 = 31KiB) <br />
* A group can be less than 2 MiB and is always split on a block boundary (32KiB) <br />
<br />
<br />
The hash tables are linked, they hash the data and each other. This is described in the Wii Docs. NKit obeys those rules. <br />
<br />
Hashes are checked and removed when converting to NKit, hashes that don't conform are preserved so they can be restored accurately. This includes hashes that not complete due to part group scrubbing are also preserved. Redump images have 100% recreatable hashes. <br />
<br />
<br />
NKit removes all hashes from the data partition. Non recreatable hashes found in scrubbed, hacked and corrupt images are stored at the end of the NKit partition data.<br />
<br />
==== GameCube Disc / Wii Raw Partition Data ====<br />
<br />
The Wii Raw Partition Data (no encryption or hashes) is almost exactly the same as a [http://hitmen.c02.at/files/yagcd/yagcd/chap13.html GameCube disc]. Offsets used in the data need to be multiplied by 4 for Wii whereas GameCube don't. There are other minor differences for example bi2.bin not being in a Wii Partition etc, but they are not important for this document. <br />
<br />
<br />
A raw data partition contains the following items <br />
<br />
===== Boot.bin (Data Header) =====<br />
<br />
{| class="wikitable"<br />
|-<br />
! Item No. !! Offset !! Length !! Name<br />
|-<br />
| 1 || 0x0 || 0x4 || ID<br />
|-<br />
| 2 || 0x4 || 0x2 || Maker Code <br />
|-<br />
| 3 || 0x5 || 0x1 || Disc No<br />
|-<br />
| 4 || 0x6 || 0x1 || Disc Version <br />
|-<br />
| 5 || 0x20 || 0x40 || Title <br />
|-<br />
| 6 || 0x420 || 0x4 || Main.dol location <br />
|-<br />
| 7 || 0x424 || 0x4 || Fst.bin location <br />
|-<br />
| 8 || 0x428 || 0x4 || Fst.bin size <br />
|-<br />
| 9 || 0x42C || 0x4 || Max Fst.bin size <br />
|}<br />
<br />
It's worth noting that the Max Fst.bin size is the same as the Fst.bin size in most cases. It can be different for 2 disc games though where the other disc has a larger fst.bin. Fst.bin size is always the size of the fst.bin on the same disc. <br />
<br />
===== Bi2.bin =====<br />
A GameCube file containing region info, this is not populated on the Wii. It's listed here for completeness <br />
<br />
===== Appldr.bin =====<br />
Extracted from GameCube images to form the Recover Files. <br />
<br />
Located at 0x2440 <br />
<br />
The length of this file is calculated by adding the value 32 to the 4 byte values stored at 0x14 and 0x18 of the appldr.bin. 32 bytes being the length of the appldr header. <br />
<br />
===== Main.dol =====<br />
Not used by NKit. GameCube Recovery will scrub after this file before the fst.bin when attempting to brute force a dat CRC match. <br />
<br />
Located at the position pointed to by 0x420 in the boot.bin <br />
<br />
The length is calculated by looping 18 dol sections and lengths. Section offsets are based at 0x0, section lengths are based at 0x90. Where the section offset value is not 0x0, add the corresponding section length to it. Store the largest value over the 18 items. This is effectively finding the '''last''' dol offset and adding the length. This is the only reliable method proven to work on all images as it caters for the one image has the second value being the largest. Normally it's the last populated.<br />
<br />
===== Fst.bin =====<br />
<br />
Located at the position pointed to by 0x424 in the boot.bin <br />
<br />
The length is located at the position pointed to by 0x428 in the boot.bin <br />
<br />
The Fst.bin contains all the information about the GameCube disc / Wii Partition Data files positions and sizes. <br />
<br />
NKit modifies this file when compacting or restoring images for Wii and GameCube. <br />
<br />
'''Wii:''' Only hacks and customs have modified file positions that are not recoverable due to the file content being modified. NKit recovery does not support moved files as there have been 0 images found that require it. Wii Recovery works at group and block level and only looks at the file system to recover gaps (junk and trailing nulls). <br />
<br />
'''GameCube:''' There are many GameCube scrubber / compacter apps that move files. NKit can recover these using the correct recovery files.<br />
<br />
===== Files =====<br />
This is documented under [[NKit/DiscFileSystem|DiscFileSystem]]</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70866NKit2019-10-30T00:02:52Z<p>Nanook: /* Version 1.4 */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.4]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.4====<br />
* Fixed Hash Preservation for images with corrupt FSTs <br />
* Fixed "Truncated RVT-R image detected..." message being shown incorrectly<br />
* FST filenames are now correctly encoded with Shift-JIS<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.3====<br />
* Added RVT-H Detection. This is not currently supported - An error is thrown and logged<br />
* Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz<br />
* Fixed Verify not outputting any log detail messages e.g. When a removed Update Partition is required to verify and was not present - no message was output, it just failed<br />
* Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious<br />
* Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)<br />
* Revert To .Net 4.6.1 - mono wasn't handling 4.7.2 very well. The app well be ported to dotnet core 3 soon<br />
* ProcessorApp: Added failure message to log errors (same as cmldline exe output)<br />
* ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso<br />
* ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load<br />
* ProcessorApp: Fixed progress .1.2.3... text alignment in the log output<br />
* ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70865NKit2019-10-29T23:53:43Z<p>Nanook: /* Download */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.4]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.4====<br />
* Fixed Hash Preservation for images with corrupt FSTs <br />
* Fixed "Truncated RVT-R image detected..." message being shown incorrectly<br />
* FST filenames are encoded are now correctly encoded with Shift-JIS<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.3====<br />
* Added RVT-H Detection. This is not currently supported - An error is thrown and logged<br />
* Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz<br />
* Fixed Verify not outputting any log detail messages e.g. When a removed Update Partition is required to verify and was not present - no message was output, it just failed<br />
* Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious<br />
* Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)<br />
* Revert To .Net 4.6.1 - mono wasn't handling 4.7.2 very well. The app well be ported to dotnet core 3 soon<br />
* ProcessorApp: Added failure message to log errors (same as cmldline exe output)<br />
* ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso<br />
* ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load<br />
* ProcessorApp: Fixed progress .1.2.3... text alignment in the log output<br />
* ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70864NKit2019-10-29T23:53:24Z<p>Nanook: /* History */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.3]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.4====<br />
* Fixed Hash Preservation for images with corrupt FSTs <br />
* Fixed "Truncated RVT-R image detected..." message being shown incorrectly<br />
* FST filenames are encoded are now correctly encoded with Shift-JIS<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.3====<br />
* Added RVT-H Detection. This is not currently supported - An error is thrown and logged<br />
* Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz<br />
* Fixed Verify not outputting any log detail messages e.g. When a removed Update Partition is required to verify and was not present - no message was output, it just failed<br />
* Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious<br />
* Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)<br />
* Revert To .Net 4.6.1 - mono wasn't handling 4.7.2 very well. The app well be ported to dotnet core 3 soon<br />
* ProcessorApp: Added failure message to log errors (same as cmldline exe output)<br />
* ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso<br />
* ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load<br />
* ProcessorApp: Fixed progress .1.2.3... text alignment in the log output<br />
* ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70806NKit2019-10-15T00:09:37Z<p>Nanook: /* Download */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.3]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.3====<br />
* Added RVT-H Detection. This is not currently supported - An error is thrown and logged<br />
* Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz<br />
* Fixed Verify not outputting any log detail messages e.g. When a removed Update Partition is required to verify and was not present - no message was output, it just failed<br />
* Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious<br />
* Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)<br />
* Revert To .Net 4.6.1 - mono wasn't handling 4.7.2 very well. The app well be ported to dotnet core 3 soon<br />
* ProcessorApp: Added failure message to log errors (same as cmldline exe output)<br />
* ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso<br />
* ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load<br />
* ProcessorApp: Fixed progress .1.2.3... text alignment in the log output<br />
* ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70805NKit2019-10-15T00:09:14Z<p>Nanook: /* History */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.2]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.3====<br />
* Added RVT-H Detection. This is not currently supported - An error is thrown and logged<br />
* Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz<br />
* Fixed Verify not outputting any log detail messages e.g. When a removed Update Partition is required to verify and was not present - no message was output, it just failed<br />
* Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious<br />
* Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)<br />
* Revert To .Net 4.6.1 - mono wasn't handling 4.7.2 very well. The app well be ported to dotnet core 3 soon<br />
* ProcessorApp: Added failure message to log errors (same as cmldline exe output)<br />
* ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso<br />
* ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load<br />
* ProcessorApp: Fixed progress .1.2.3... text alignment in the log output<br />
* ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70781NKit2019-10-01T13:29:50Z<p>Nanook: /* Download */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.2]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70780NKit2019-10-01T13:16:48Z<p>Nanook: /* History */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.1]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
<br />
====Version 1.2====<br />
* Updated to .Net 4.7.2 (Preparation for long file name support)<br />
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)<br />
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)<br />
* Fixed the ExtractionApp GC Region always showing Japan<br />
* Corrected NKitExtracted path in config<br />
* Added missing Wii Jakers config entry<br />
* Fixed Double "Truncated RVT-R" message<br />
* Fixed ProcessorApp Gui Exception not being captured<br />
* Fixed Drag Drop message being cleared when a non supported file is dropped<br />
* Modified some public class accessibility to make them internal<br />
<br />
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.<br />
<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70761NKit2019-09-20T12:17:45Z<p>Nanook: /* Version 1.1 */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.1]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70760NKit2019-09-20T11:32:43Z<p>Nanook: /* Version 1.1 */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.1]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path would be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue. Make sure NKitReencode is set to true if reconverting images that were made with v1.0.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70757NKit2019-09-20T10:57:59Z<p>Nanook: /* History */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.1]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.1====<br />
* NKit format fix: Fixed a bug when converting Wii to NKit. This was introduced during the last 2 days of development while adding support for a Customs preservation bug.<br />
* Fixed a minor ProcessingApp bug where the output path would be used.<br />
Any Converted NKit Wii images from v1.0 are not corrupt. Just not 100% correct to the format. Reconverting will correct the issue.<br />
<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70756NKit2019-09-20T10:55:27Z<p>Nanook: /* Download */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit.36157/ NKit v1.1]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70755NKit/UserGuide2019-09-20T10:54:23Z<p>Nanook: /* NKit Format */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No || Yes || Yes || RVT-H format only playable in Dolphin<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Output images that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
An example of a working mask is <code>%pth\GameCube\%nmm.%ext</code> you may choose to use something like <code>%pth\NewFolder\%nmm %id8 %crc.%ext</code>. This will add <code>[]</code> around the values.<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
NKit can extract the recovery files from images. Running this on a set of random Wii images may extract Update partitions that can be used to recover other images that have had them removed. The update partitions are shared across images. There's only a handful of unique ones.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii - swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/NKitFormat?diff=70754NKit/NKitFormat2019-09-20T10:53:14Z<p>Nanook: </p>
<hr />
<div>This is the technical detail of the NKit Format. It's concise and intended to be used along side the code.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No || Yes || Yes || RVT-H format only playable in Dolphin<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) 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 as possible.<br />
<br />
== Header ==<br />
<br />
NKit places its header at 0x200 in the Wii and GameCube disc headers.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Offset !! Length !! Name<br />
|-<br />
| 0x200 || 0x4 || NKit Header 'NKIT'<br />
|-<br />
| 0x204 || 0x4 || NKit Version ' v01'<br />
|-<br />
| 0x208 || 0x4 || Source image original CRC32<br />
|-<br />
| 0x20C || 0x4 || NKit CRC - makes the NKit file CRC32 equal the source CRC at 0x208 (at 0x4 in GCZ)<br />
|-<br />
| 0x210 || 0x4 || Source image length <br />
|-<br />
| 0x214 || 0x4 || Forced Junk ID (When Disc ID differs - rare - GameCube only) <br />
|-<br />
| 0x218 || 0x4 || Wii Update partition CRC32 if removed when converting<br />
|}<br />
<br />
NKit also modifies the Wii header to set the bytes at 0x60 and 0x61 to 0x1. This indicates to a Dev Kit and Dolphin that the encryption and hashes aren't present.<br />
<br />
== GameCube ==<br />
<br />
The disc header (Boot.bin) length is 0x440. It's modified as detailed above. The [[NKit/Discs#GameCube_Disc_.2F_Wii_Raw_Partition_Data|other items]] remain untouched.<br />
<br />
The [[NKit/NKitFormat#FileSystem|filesystem]] and fst.bin are modified when converting to NKit.<br />
<br />
If the fst.bin is invalid then the whole filesystem (post fst.bin) is encoded as a gap. This is known as a Bad Conversion. Typically for corrupt images. Some customs may have this issue. Bad Conversions often error too as not all possibilities are convertable<br />
<br />
== Wii ==<br />
<br />
The disc header length is 0x50000. The partition tables are modified to point to new partition offsets.<br />
<br />
==== Removed Update Partition ====<br />
The update partition can be removed in order to save space. In this case offset 0x218 in the disc header will hold CRC32 of the removed partition. The removed partition will have been backed up in the 'Redump' recovery folder or in the 'NkitExtracted' recovery folder if it's not a known partition. The file name will end with this CRC<br />
<br />
The original partition table is backed up at 0x50000. The next partition (Data or Channel) is located at 0x58000<br />
<br />
=== Partitions ===<br />
<br />
The partition header length is always 0x20000. The NKit Format only modifies 1 4 byte value - the partition length (offset 0x2bc). The length is the new size of the compacted partition data and is used to restore the partition.<br />
<br />
The partition data is unencrypted and hashes have been removed. <br />
<br />
The new partition data length is calculated without the hashes, whereas the original includes them. The original value is preserved in the partition data at 0x210. The real RVT-H format stores 0 for the length in the header. It's unconfirmed if a Dev Kit uses this value<br />
<br />
==== Partition Processing ====<br />
<br />
NKit partition data information:<br />
* Decrypted groups<br />
* Hashes are verified and removed - if any hash sector fails in a group then all the group's hashes are cached and stored at the end of the partition<br />
* System items are copied as is up to the fst.bin. The fst.bin will be modified to reflect new file offsets<br />
* Immediately after the fst.bin follows a bit mask of flags indicating preserved hashes that didn't verify correctly. The length of this mask is 1 byte for every 8 groups in the partition. Add 1 byte if the number of groups isn't divisible by 8<br />
* The filesystem is compacted with the NKit Format, by encoding the gaps between files<br />
* If the fst.bin is invalid then the whole filesystem (post fst) is encoded as a gap. This is known as a Bad Conversion. Typically for corrupt images. Some customs may have this issue. Bad Conversions often error too as not all possibilities are convertable<br />
* Hashes that failed to verify are stored at the end of the NKit Format partition data. The length can be calculated from the hash mask. Care must be taken to calculate the last group. Only read as many hashes are there are blocks<br />
* If the partition data ID is 4 null bytes then 0x440 bytes for the header is written followed by 4 bytes indicating the original partition length. The remainder of the partition is encoded as a gap. The header is not modified. This is to cater for 2 system discs that have missing update partition data that's filled with sequential values. Decryption and hashes are valid and removed<br />
* Junk following the partition is encoded and stored in the NKit Format partition<br />
* Partitions are then padded to 32KiB with 0x00 where the next partition follows (if any)<br />
<br />
A lot of the complexity in this format is to cater for non-Redump images (scrubbed, hacks etc). Redump images don't require hash preservation, scrubbing preservation or invalid fst.bin checks. This format caters for them anyway.<br />
<br />
== FileSystem ==<br />
<br />
Both the GameCube and Wii use the same code to encode the filesystem. The only real difference is that Wii fst.bin offsets and lengths must be multiplied by 4 when mapping to files. The NKit Format uses a custom Run Length Encoding (RLE) to remove the gaps between files and shrink gaps to 4 bytes in most cases.<br />
<br />
Gaps are processed on the 4 byte boundary. Any data from a non aligned file remains intact (it should be 1-3 bytes of 0x00). The gaps also contain trailing nulls that follow the previous file. See the [[NKit/DiscFileSystem#FileSystem_Rules|filesystem rules]] for more information.<br />
<br />
Data in a gap is categorised as:<br />
* Junk: a gap with the correct nulls and junk<br />
* Block: Scrubbed or filled with the same byte. Wii scrubbed data when decrypted is a repeating 16 byte sequence<br />
* NonJunk: Data that is not junk or scrubbed data<br />
<br />
The Gap / 0x00 Scrubbed / Preserved Junk File RLE format is:<br />
{| class="wikitable"<br />
|-<br />
! Offset !! Mask !! Value<br />
|-<br />
| 0x0 || 0xFFFFFFFC || Size of gap without the last 2 bits set. Gaps are always to 4 byte boundaries so the last 2 bits will be 0 anyway <br />
|-<br />
| 0x0 || 0x00000003 || 0x0:AllJunk, 0x1:All 0x00 Scrubbed, 0x2:Mixed, 0x3:JunkFile<br />
|-<br />
| 0x4 || 0xFFFFFFFF || Optional: Caters for Gaps larger than 32 bit (Only seen in one image). Present if the value for the above mask is 0xFFFFFFFC (all bits on). Add this value to the 0xFFFFFFFC for the full gap size.<br />
|}<br />
<br />
If the gap is set to mixed there will be multiple encoded blocks with an 4 byte header. The header will be made from masks detailed in the items below. 1 & 2 or 1 & 3.<br />
{| class="wikitable"<br />
|-<br />
! Item !! Mask !! Value<br />
|-<br />
| 1 || 0xC0000000 || 0x00000000:Junk, 0x40000000:NonJunk, 0x80000000:ByteFill, 0xC0000000:Repeat<br />
|-<br />
| 2 || 0x3FFFFFFF: Only for Junk, NonJunk, Repeat || Count of 256 byte blocks<br />
|-<br />
| 3 || 0x3FFFFF00: Only for ByteFill (Count) & 0xFF (Byte) || Count of 256 byte blocks & Byte - NKit GameCube supports all bytes, Wii only supports 0x00 and 0xFF<br />
|}<br />
<br />
The above items store 256 byte block counts rather than length. This is to allow them to use as few bytes as possible. When restoring the data the gap length from the first table must be used to determine if the last block is complete or partial. The stored gap length must not be exceeded.<br />
<br />
Repeat is used if the size or block count does not fit in the value mask specified. It's never occurred in tests as yet.<br />
<br />
For NonJunk sections the preserved junk blocks are stored immediately after the 4 byte header detailed above. The NonJunk blocks are written to disc in 50MiB blocks where the block being processed takes the cache size over 50MiB. There is only one disc in Redump that triggers this (a GameCube service disc).<br />
<br />
===== Preserving Wii Scrubbing =====<br />
Scrubbing replaces the encryption with a repeating character - normally 0x00. Therefore all underlying junk and hashes are removed. NKit still decrypts it and process the data. When analysing decrypted scrubbed partition data, the result is a repeating 16 byte pattern. NKit recognises this and preserves it as ByteFill (0x00 and 0xFF scrubbing is supported).<br />
<br />
NKit preserves gaps from the offset of the end of the previous file (4 byte boundary) to the next file. Gaps are not aligned on the 256 byte boundary that NKit is using to detect the blocks its preserving. So when an image go from junk to scrubbed there's often a preserved NonJunk block that's half junk half scrubbed or vice versa. When restoring an image, this just works out back 1:1 to the original. If a full group is scrubbed then the scrubbing must be copied in to the hash sector. When encrypted the repeating bytes magically go back to 0x00 or 0xFF scrubbing.</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70752NKit2019-09-19T23:33:44Z<p>Nanook: /* Download */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
[https://gbatemp.net/download/nkit-v1-0.36157/ NKit v1.0]<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70751NKit2019-09-19T23:03:41Z<p>Nanook: /* Requirements */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70750NKit2019-09-19T23:02:53Z<p>Nanook: /* Furure Features */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Future Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70749NKit2019-09-19T23:01:02Z<p>Nanook: /* Version 1.0 */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Furure Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70748NKit2019-09-19T22:59:59Z<p>Nanook: /* History */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
A lot of effort has gone in to ensuring this version is as stable and reliable as possible. The NKit Format is stable and reliable. Always use FullVerify as it's always accurate as are the Hashes when CalculateHashes is on. Please report any issues and ask any questions.<br />
<br />
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you use dats)<br />
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)<br />
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction<br />
<br />
====Version 0.5====<br />
First stable version<br />
<br />
==Furure Features==<br />
* Release the code (Yes, this WILL happen)<br />
* WBFS output (for easy output for Wii Hardware use)<br />
* CISO reading<br />
* Port the code to dotnet core 3 when it's released (GUIs too)<br />
* Port to Android<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70723NKit2019-09-14T13:30:49Z<p>Nanook: /* Credits */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll (fst.bin) code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70722NKit2019-09-14T13:29:43Z<p>Nanook: /* Credits */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos (ISO.DEC) code<br />
* Wiimm - WIT (WBFS) code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70721NKit2019-09-14T13:28:04Z<p>Nanook: /* Credits */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70720NKit/UserGuide2019-09-14T09:42:02Z<p>Nanook: /* Recovery Files */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Output images that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
An example of a working mask is <code>%pth\GameCube\%nmm.%ext</code> you may choose to use something like <code>%pth\NewFolder\%nmm %id8 %crc.%ext</code>. This will add <code>[]</code> around the values.<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
NKit can extract the recovery files from images. Running this on a set of random Wii images may extract Update partitions that can be used to recover other images that have had them removed. The update partitions are shared across images. There's only a handful of unique ones.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii - swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70717NKit2019-09-13T19:02:08Z<p>Nanook: /* Credits */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* LedZeppelin68 - Nasos<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit/DiscFileSystem?diff=70716NKit/DiscFileSystem2019-09-13T18:51:42Z<p>Nanook: </p>
<hr />
<div>The following rules have been proven to be how the filesystem is made up for GameCube and Wii.<br />
<br />
Once a Wii partition is decrypted and dehashed it is almost identical to a GameCube disc. They key difference is that the file offsets in the fst.bin must be multiplied by 4 for the Wii. This is so that the Wii can address larger file systems that go beyond the 32 bit addressing that's used. <br />
<br />
== FileSystem Rules ==<br />
* All files are at least 4 byte aligned <br />
* The gap between files can be 0 (always obeying the 4 byte alignment rule) <br />
* If a file length is less than a multiple of 4 bytes it is padded to the 4 byte boundary with 0x0 <br />
* Non 0 length gaps are first padded to the next 4 byte boundary (1 to 3 bytes) then up to an additional 28 nulls are added if the gap is large enough <br />
* Gaps are filled with junk starts after the trailing nulls <br />
* NKit preserves files aligned at 32KiB that have a length that's a multiple of 32KiB. GameCube directly streamed audio and .TGC files require this. NKit applies the same logic to Wii even though with the hashes the alignment is questionable, the dev kit appears to align these files <br />
* Files are mostly pushed to the end of the filesystem <br />
* There is always a large gap between files. This applies to non-service discs, for Wii it's the largest partition. This gap does not start with the trailing nulls following the previous file. The exact rules are unknown as to when this applies. Any gap larger than 0x40000 works for every image. This was chosen as it's the size of 1 junk block, it may be less, more or have boundary limitations<br />
* Some files don't exist in the filesystem (Junk Files). The fst has them marked and the space is reserved on the disc, however the file is not there. If the missing file follows another file. The junk file will start with the trailing nulls from the previous file then junk filling any space. Typical files are debug and Windows type files like recycle bin etc. This is not common, even less so for Wii. One image has all the files from other regions listed in it that aren't in the image. 300mb of junk files. NKit sets the length of junk files to 0 in the fst and removes them. It is able to restore them<br />
* There are some GameCube images that appear to differ from the rules for some reason. Some also have some bytes in the junk that don't conform to the algorithm. NKit supports these with configuration entries<br />
* The fst is always the first file in the file system<br />
* These rules start from the gap following the fst. This gap starts with the trailing nulls and junk<br />
<br />
== NKit FileSystem ==<br />
<br />
The NKit format filesystem uses the above rules to reencode gaps with a custom basic run length encoding (RLE) to compress them to 4 bytes in most cases. Scrubbed and non-junk is also supported. Where 32KiB alignments are preserved any padding is filled with 0x00. <br />
<br />
The fst is updated to reflect the new file offsets. When restoring they are restored after all the gaps have been expanded. <br />
<br />
The NKit Format is documented [[NKit/NKitFormat#FileSystem|here]].</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70714NKit2019-09-12T22:40:35Z<p>Nanook: /* WIP!! */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP. It will be added to as people ask questions and raise issues...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70713NKit2019-09-12T22:32:35Z<p>Nanook: /* Documentation */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]] - Please read :-)<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70712NKit2019-09-12T22:31:43Z<p>Nanook: /* Documentation */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]] - Coming soon...<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70711NKit2019-09-12T22:03:17Z<p>Nanook: /* Credits */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70710NKit2019-09-12T21:56:54Z<p>Nanook: /* Requirements */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
* .Net or Mono 4.6.1 (Will be ported to dotnet core 3.0 soon)<br />
<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format (including RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70709NKit2019-09-12T21:48:15Z<p>Nanook: </p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]<br />
<br />
==Credits==<br />
<br />
* Johnsanc - Testing, ideas and motivation<br />
* JosJuice - Disc format and Dolphin knowledge<br />
* GerbilSoft - Disc format (including RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])<br />
* Osupka - UltimateUnscrubber code<br />
* ToeKnee - Testing<br />
* Dack - Wii Scrubber code<br />
* Scifi76 - Wii Scrubber dll code<br />
* All the game preservationists out there - hope this saves you some space...</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70708NKit2019-09-12T21:20:24Z<p>Nanook: /* Key Uses */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, header/region hacked images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70705NKit2019-09-12T12:54:59Z<p>Nanook: /* Features */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scene/scrubbed/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, scene images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70704NKit2019-09-12T12:54:43Z<p>Nanook: /* Features */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scene/scrubbed/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, scene images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70703NKit2019-09-12T12:54:27Z<p>Nanook: /* Formats */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scene/scrubbed/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, scene images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70702NKit2019-09-12T12:53:49Z<p>Nanook: /* Features */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scene/scrubbed/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, scene images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
<br />
* Recovery and Preservation of GameCube and Wii images<br />
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)<br />
* Reusable library for use in other projects<br />
* Test Mode<br />
* Summary log of all conversions<br />
* Rename images that match Dat file entries to a configurable mask<br />
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)<br />
* Scrubbed and Hacked preservation support<br />
<br />
===Formats===<br />
* GCZ support<br />
* ISO.DEC read support<br />
* WBFS read support<br />
* ISO support<br />
* RVT-R Wii ISO read support<br />
* NKit Format support (smallest format and Dolphin compatible)<br />
* GC NKit format aligns audio and tgc files to 32k for playability<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Read the above images from Rar/Zip/7zip etc<br />
<br />
===Recovery Abilities===<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Support for GC images with junk not generated with the image ID<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]</div>Nanook//wiki.gbatemp.net/wiki/NKit?diff=70701NKit2019-09-12T12:30:04Z<p>Nanook: /* Features */</p>
<hr />
<div>==WIP!!==<br />
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...<br />
<br />
==Overview==<br />
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images<br />
<br />
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump<br />
<br />
'''Preserve''' is the ability to shrink any image and convert it back to the source iso<br />
<br />
NKit can convert to ISO and NKit format. The NKit format is designed to shrink an image to it's smallest while ensuring it can be restored back to the original source data. NKit images are also playable by Dolphin<br />
<br />
==Key Uses==<br />
* Unscrub/Rebuild Wii/GC images from scene/scrubbed/wbfs(file)/iso.dec/iso/gcz to match Redump good images<br />
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression<br />
* Preserve and shrink Scrubbed and Custom images<br />
* Preserve Wii images with controlled removal of update partition<br />
<br />
===Recovery===<br />
* Recover scrubbed, scene images to match Redump verified images<br />
===Preservation - NKit Format===<br />
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data<br />
<br />
==Features==<br />
* Read the above images from Rar/Zip/7zip etc<br />
* GC nkit format CRC matches source image CRC<br />
* GC nkit format can be gcz un/compressed by the included apps<br />
* GC nkit format aligns audio and tgc files to 32k for playability<br />
* Rename restored images to match Redump dat crc<br />
* Rename restored images to match a secondary Redump compatible dat crc<br />
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions<br />
* Replace Brickblocked Update partitions<br />
* Auto fixes modified disc headers (where the Data header remains intact)<br />
* Fixes rare corrupt Wii partition table (caused by WBM)<br />
* Fixes scrubbed trailing file 0's<br />
* Fixes truncated Wii images (where the Data partition is intact)<br />
* Fixes slightly overdumped images (from descramble tools)<br />
* Fixes Wii Data partitions moved before 0xF800000 to save space<br />
* Fixes compacted GC images<br />
* Fixes moved and reordered GC files<br />
* Fixes modified GC headers (inc. title, region hacks)<br />
* Fixes mod chip modified GC apploaders<br />
* Fixes GC images with non conformant junk<br />
* Fixes modified Wii region and ratings<br />
* Wii RVT-R Support<br />
* Support for GC images with junk not generated with the image ID<br />
* All regions supported<br />
* Optimised for performance<br />
* GC NKit format is compatible with hardware and Dolphin<br />
* Wii NKit format removes hashes and encryption (Dolphin Compatible)<br />
* Reusable library for use in other projects<br />
<br />
==Requirements==<br />
* Windows | Linux | Mac (Untested)<br />
==Download==<br />
Coming Soon...<br />
<br />
==Documentation==<br />
* [[NKit/UserGuide|User Guide]]<br />
* [[NKit/FAQ|FAQ]]<br />
* [[NKit/Glossary|Glossary]]<br />
<br />
====Technical====<br />
* [[NKit/Discs|Discs]] : GameCube and Wii disc details<br />
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps<br />
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format<br />
<br />
==History==<br />
====Version 1.0====<br />
<br />
[[Category:Wii Utilities]]<br />
[[Category:Wii]]</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70700NKit/UserGuide2019-09-12T12:20:57Z<p>Nanook: /* Brute Force Recovery */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Output images that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
An example of a working mask is <code>%pth\GameCube\%nmm.%ext</code> you may choose to use something like <code>%pth\NewFolder\%nmm %id8 %crc.%ext</code>. This will add <code>[]</code> around the values.<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii - swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70699NKit/UserGuide2019-09-12T12:18:57Z<p>Nanook: /* Mask Renaming Output Files */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Output images that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
An example of a working mask is <code>%pth\GameCube\%nmm.%ext</code> you may choose to use something like <code>%pth\NewFolder\%nmm %id8 %crc.%ext</code>. This will add <code>[]</code> around the values.<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70698NKit/UserGuide2019-09-12T12:15:03Z<p>Nanook: /* Mask Renaming Output Files */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Output images that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70697NKit/UserGuide2019-09-12T12:13:05Z<p>Nanook: /* Examples: */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70696NKit/UserGuide2019-09-12T12:12:52Z<p>Nanook: /* Command Line Apps */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
=====Examples:=====<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70695NKit/UserGuide2019-09-12T12:11:50Z<p>Nanook: /* NKit Format */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
The NKit Format is non-lossy and supports clean / Redump images as well as scrubbed and hacked images. Some corrupt and bad images are supported too, although these can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70694NKit/UserGuide2019-09-12T12:10:13Z<p>Nanook: /* GUI Apps */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of Modes that performs the NKit conversions (covered by the first 4 command line apps above)<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70693NKit/UserGuide2019-09-12T12:08:13Z<p>Nanook: /* Command Line Apps */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec (just as .iso)<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to ISO<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of option that performs the tasks of the first 4 commandline apps above<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70692NKit/UserGuide2019-09-12T12:06:59Z<p>Nanook: /* Base Configuration */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec.<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to .iso<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of option that performs the tasks of the first 4 commandline apps above<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* <code>FullVerify="true"</code> - This must be enabled and return VerifySuccess<br />
* <code>DeleteSource="true"</code> - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* <code>TestMode="true"</code> - Process and remove the output file<br />
* <code>EnableSummaryLog="true"</code> - Audit the results of the files processed<br />
* <code>MaskRename="true"</code> - Audit which Dat entry matches<br />
* <code>CalculateHashes="true"</code> - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* <code>FullVerify="true"</code> - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70691NKit/UserGuide2019-09-12T12:05:59Z<p>Nanook: /* Getting Started */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec.<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to .iso<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of option that performs the tasks of the first 4 commandline apps above<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box and a default configuration is provided, but in order to Recover images and match to Redump you will need to do the following:-<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
You may prefer to change the default configuration before using the apps. The following sections highlight some alternative configurations.<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.<br />
<br />
====Convert To NKit and Delete Source====<br />
<br />
* FullVerify="true" - This must be enabled and return VerifySuccess<br />
* DeleteSource="true" - This is defaulted to false, Test Mode cancels this<br />
<br />
====Convert To NKit and Audit The Results====<br />
<br />
* TestMode="true" - Process and remove the output file<br />
* EnableSummaryLog="true" - Audit the results of the files processed<br />
* MaskRename="true" - Audit which Dat entry matches<br />
* CalculateHashes="true" - true if auditing Summary to contain the MD5 and SHA1 of the output file<br />
* FullVerify="true" - true if the auditing should verify the output CRC is correct</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70690NKit/UserGuide2019-09-12T11:49:15Z<p>Nanook: /* Configuration Options */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec.<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to .iso<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of option that performs the tasks of the first 4 commandline apps above<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box, however some needs to take place to set up the Redump matching and Recovery files if you're looking to recover images to match Redump Dat entries. The previous sections cover the features mentioned in this section.<br />
<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Base Configuration===<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.</div>Nanook//wiki.gbatemp.net/wiki/NKit/NKitFormat?diff=70689NKit/NKitFormat2019-09-12T11:47:23Z<p>Nanook: </p>
<hr />
<div>This is the technical detail of the NKit Format. It's concise and intended to be used along side the code.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) 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 as possible.<br />
<br />
== Header ==<br />
<br />
NKit places its header at 0x200 in the Wii and GameCube disc headers.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Offset !! Length !! Name<br />
|-<br />
| 0x200 || 0x4 || NKit Header 'NKIT'<br />
|-<br />
| 0x204 || 0x4 || NKit Version ' v01'<br />
|-<br />
| 0x208 || 0x4 || Source image original CRC32<br />
|-<br />
| 0x20C || 0x4 || NKit CRC - makes the NKit file CRC32 equal the source CRC at 0x208 (at 0x4 in GCZ)<br />
|-<br />
| 0x210 || 0x4 || Source image length <br />
|-<br />
| 0x214 || 0x4 || Forced Junk ID (When Disc ID differs - rare - GameCube only) <br />
|-<br />
| 0x218 || 0x4 || Wii Update partition CRC32 if removed when converting<br />
|}<br />
<br />
NKit also modifies the Wii header to set the bytes at 0x60 and 0x61 to 0x1. This indicates to a Dev Kit and Dolphin that the encryption and hashes aren't present.<br />
<br />
== GameCube ==<br />
<br />
The disc header (Boot.bin) length is 0x440. It's modified as detailed above. The [[NKit/Discs#GameCube_Disc_.2F_Wii_Raw_Partition_Data|other items]] remain untouched.<br />
<br />
The [[NKit/NKitFormat#FileSystem|filesystem]] and fst.bin are modified when converting to NKit.<br />
<br />
If the fst.bin is invalid then the whole filesystem (post fst.bin) is encoded as a gap. This is known as a Bad Conversion. Typically for corrupt images. Some customs may have this issue. Bad Conversions often error too as not all possibilities are convertable<br />
<br />
== Wii ==<br />
<br />
The disc header length is 0x50000. The partition tables are modified to point to new partition offsets.<br />
<br />
==== Removed Update Partition ====<br />
The update partition can be removed in order to save space. In this case offset 0x218 in the disc header will hold CRC32 of the removed partition. The removed partition will have been backed up in the 'Redump' recovery folder or in the 'NkitExtracted' recovery folder if it's not a known partition. The file name will end with this CRC<br />
<br />
The original partition table is backed up at 0x50000. The next partition (Data or Channel) is located at 0x58000<br />
<br />
=== Partitions ===<br />
<br />
The partition header length is always 0x20000. The NKit Format only modifies 1 4 byte value - the partition length (offset 0x2bc). The length is the new size of the compacted partition data and is used to restore the partition.<br />
<br />
The partition data is unencrypted and hashes have been removed. <br />
<br />
The new partition data length is calculated without the hashes, whereas the original includes them. The original value is preserved in the partition data at 0x210. The real RVT-H format stores 0 for the length in the header. It's unconfirmed if a Dev Kit uses this value<br />
<br />
==== Partition Processing ====<br />
<br />
NKit partition data information:<br />
* Decrypted groups<br />
* Hashes are verified and removed - if any hash sector fails in a group then all the group's hashes are cached and stored at the end of the partition<br />
* System items are copied as is up to the fst.bin. The fst.bin will be modified to reflect new file offsets<br />
* Immediately after the fst.bin follows a bit mask of flags indicating preserved hashes that didn't verify correctly. The length of this mask is 1 byte for every 8 groups in the partition. Add 1 byte if the number of groups isn't divisible by 8<br />
* The filesystem is compacted with the NKit Format, by encoding the gaps between files<br />
* If the fst.bin is invalid then the whole filesystem (post fst) is encoded as a gap. This is known as a Bad Conversion. Typically for corrupt images. Some customs may have this issue. Bad Conversions often error too as not all possibilities are convertable<br />
* Hashes that failed to verify are stored at the end of the NKit Format partition data. The length can be calculated from the hash mask. Care must be taken to calculate the last group. Only read as many hashes are there are blocks<br />
* If the partition data ID is 4 null bytes then 0x440 bytes for the header is written followed by 4 bytes indicating the original partition length. The remainder of the partition is encoded as a gap. The header is not modified. This is to cater for 2 system discs that have missing update partition data that's filled with sequential values. Decryption and hashes are valid and removed<br />
* Junk following the partition is encoded and stored in the NKit Format partition<br />
* Partitions are then padded to 32KiB with 0x00 where the next partition follows (if any)<br />
<br />
A lot of the complexity in this format is to cater for non-Redump images (scrubbed, hacks etc). Redump images don't require hash preservation, scrubbing preservation or invalid fst.bin checks. This format caters for them anyway.<br />
<br />
== FileSystem ==<br />
<br />
Both the GameCube and Wii use the same code to encode the filesystem. The only real difference is that Wii fst.bin offsets and lengths must be multiplied by 4 when mapping to files. The NKit Format uses a custom Run Length Encoding (RLE) to remove the gaps between files and shrink gaps to 4 bytes in most cases.<br />
<br />
Gaps are processed on the 4 byte boundary. Any data from a non aligned file remains intact (it should be 1-3 bytes of 0x00). The gaps also contain trailing nulls that follow the previous file. See the [[NKit/DiscFileSystem#FileSystem_Rules|filesystem rules]] for more information.<br />
<br />
Data in a gap is categorised as:<br />
* Junk: a gap with the correct nulls and junk<br />
* Block: Scrubbed or filled with the same byte. Wii scrubbed data when decrypted is a repeating 16 byte sequence<br />
* NonJunk: Data that is not junk or scrubbed data<br />
<br />
The Gap / 0x00 Scrubbed / Preserved Junk File RLE format is:<br />
{| class="wikitable"<br />
|-<br />
! Offset !! Mask !! Value<br />
|-<br />
| 0x0 || 0xFFFFFFFC || Size of gap without the last 2 bits set. Gaps are always to 4 byte boundaries so the last 2 bits will be 0 anyway <br />
|-<br />
| 0x0 || 0x00000003 || 0x0:AllJunk, 0x1:All 0x00 Scrubbed, 0x2:Mixed, 0x3:JunkFile<br />
|-<br />
| 0x4 || 0xFFFFFFFF || Optional: Caters for Gaps larger than 32 bit (Only seen in one image). Present if the value for the above mask is 0xFFFFFFFC (all bits on). Add this value to the 0xFFFFFFFC for the full gap size.<br />
|}<br />
<br />
If the gap is set to mixed there will be multiple encoded blocks with an 4 byte header. The header will be made from masks detailed in the items below. 1 & 2 or 1 & 3.<br />
{| class="wikitable"<br />
|-<br />
! Item !! Mask !! Value<br />
|-<br />
| 1 || 0xC0000000 || 0x00000000:Junk, 0x40000000:NonJunk, 0x80000000:ByteFill, 0xC0000000:Repeat<br />
|-<br />
| 2 || 0x3FFFFFFF: Only for Junk, NonJunk, Repeat || Count of 256 byte blocks<br />
|-<br />
| 3 || 0x3FFFFF00: Only for ByteFill (Count) & 0xFF (Byte) || Count of 256 byte blocks & Byte - NKit GameCube supports all bytes, Wii only supports 0x00 and 0xFF<br />
|}<br />
<br />
The above items store 256 byte block counts rather than length. This is to allow them to use as few bytes as possible. When restoring the data the gap length from the first table must be used to determine if the last block is complete or partial. The stored gap length must not be exceeded.<br />
<br />
Repeat is used if the size or block count does not fit in the value mask specified. It's never occurred in tests as yet.<br />
<br />
For NonJunk sections the preserved junk blocks are stored immediately after the 4 byte header detailed above. The NonJunk blocks are written to disc in 50MiB blocks where the block being processed takes the cache size over 50MiB. There is only one disc in Redump that triggers this (a GameCube service disc).<br />
<br />
===== Preserving Wii Scrubbing =====<br />
Scrubbing replaces the encryption with a repeating character - normally 0x00. Therefore all underlying junk and hashes are removed. NKit still decrypts it and process the data. When analysing decrypted scrubbed partition data, the result is a repeating 16 byte pattern. NKit recognises this and preserves it as ByteFill (0x00 and 0xFF scrubbing is supported).<br />
<br />
NKit preserves gaps from the offset of the end of the previous file (4 byte boundary) to the next file. Gaps are not aligned on the 256 byte boundary that NKit is using to detect the blocks its preserving. So when an image go from junk to scrubbed there's often a preserved NonJunk block that's half junk half scrubbed or vice versa. When restoring an image, this just works out back 1:1 to the original. If a full group is scrubbed then the scrubbing must be copied in to the hash sector. When encrypted the repeating bytes magically go back to 0x00 or 0xFF scrubbing.</div>Nanook//wiki.gbatemp.net/wiki/NKit/UserGuide?diff=70688NKit/UserGuide2019-09-12T11:47:09Z<p>Nanook: /* Feature Overview */</p>
<hr />
<div><br />
Welcome to the NKit user guide<br />
<br />
This guide aims to cover NKit's features and options from a user point of view. Please refer to the [[NKit/Glossary|Glossary]] and [[NKit/FAQ|FAQ]] if something isn't clear. Feel free to ask anything else in the GBA Temp NKit App thread. Thanks for reading.<br />
<br />
==Key Uses==<br />
There are two key uses of NKit:<br />
* '''Recovery''': Rebuild and repair images to match Redump verified images. This is aided by use of Recovery files that can be extracted from good sources. Recovery uses these files to rebuild the iso and repair modified disc headers, unscrub blocks, reinsert missing Wii partitions, move and reorder GameCube filesystems<br />
* '''Convert''': Converts anything as is. When converting to the NKit Format the source data is preserved so that it can be restored back to the source iso<br />
<br />
==NKit Apps==<br />
There are 2 types of apps, command line and GUI. All apps use the NKit.dll.<br />
<br />
Note for Devs: The NKit.dll contains all the processing logic. The apps below contain very little code and demonstrate how to use it.<br />
<br />
===Command Line Apps===<br />
* '''ConvertToISO.exe''' - converts a source file to iso. This can be wbfs (scrubbing is preserved), iso.dec (junk is recreated) or NKit [iso/gcz] (source data is restored back to iso)<br />
* '''ConvertToNKit.exe''' - preserves the source image data as nkit [iso/gcz]. This can also be used to preserve scrubbed, hacked or bad dumps etc. For WBFS and iso.dec when restoring back to iso with ConvertToIso.exe the iso will contain all data that was in the original WBFS / iso.dec.<br />
* '''RecoverToISO.exe''' - attempts to recover GameCube and Wii images to .iso<br />
* '''RecoverToNKit.exe''' - attempts to recover GameCube and Wii images and convert to nkit.iso or nkit.gcz<br />
* '''RecoveryExtract.exe''' - saves recovery files from images. CRC's in The NKit.dll.config are used to save extracted files in to a 'Redump' or 'Other' folder.<br />
<br />
All commandline apps have the same usage. A list of space separated files and masks. Paths can be relative or absolute. The apps will scan all inputs for files and collate them into a unique set. They are processed for multipart files (rars, split etc) then sorted and processed.<br />
<br />
Examples (all standard command line)<br />
{| class="wikitable"<br />
|-<br />
! Example !! Description<br />
|-<br />
| <code>RecoverToNKit test\*.*</code> || Relative path, all files<br />
|-<br />
| <code>RecoverToNKit c:\test\*.*</code> || Absolute path, all files<br />
|-<br />
| <code>RecoverToNKit "test path\*.*"</code> || Path with spaces<br />
|-<br />
| <code>RecoverToNKit "backup image.iso"</code> || Specific file with spaces <br />
|-<br />
| <code>RecoverToNKit *.r??</code> || All rar files (including parts r00, r01 etc)<br />
|-<br />
| <code>RecoverToNKit *.wbf?</code> || All wbfs files (including wbfs + wbf1)<br />
|-<br />
| <code>RecoverToNKit path</code> || All files in a relative folder<br />
|-<br />
| <code>RecoverToNKit path\*.*</code> || All files in a relative folder:<br />
|}<br />
<br />
===GUI Apps===<br />
* '''NKitExtractionApp.exe''' - extract recovery files or extract files from the image filesystems<br />
* '''NKitProcessingApp.exe''' - recover and convert files to iso / nkit [iso/gcz]. It has a drop down of option that performs the tasks of the first 4 commandline apps above<br />
<br />
The configuration options in the GUI apps override the equivalent settings in the NKit.dll.config file.<br />
<br />
This user guide refers to '''conversions''' throughout which are types of processing offered by NKit. The command line apps refer to them - ConvertToISO, ConvertToNKit, RecoverToISO and RecoverToNKit.<br />
<br />
==Feature Overview==<br />
The features in this section are used across the conversions in NKit.<br />
<br />
====NKit Format====<br />
ConvertToNKit and RecoverToNKit will output to the [[NKit/NKitFormat|NKit Format]]. This format is the smallest GameCube and Wii image format. Both GameCube and Wii images are playable in Dolphin, but only GameCube is supported by hardware.<br />
<br />
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 can error due to invalid fst.bin modifications.<br />
<br />
There are 2 NKit output formats, raw (iso) and compressed (gcz). Both were designed with 1:1 preservation, size and playability in mind. Hardware support for Wii was sacrificed for smaller image sizes. If hardware support is required then WBFS is currently the best available and recoverable to Redump where not hacked or corrupt.<br />
<br />
{| class="wikitable"<br />
|-<br />
! System !! Format !! Hardware Supported !! Dolphin Supported !! Restorable 1:1 !! Notes<br />
|-<br />
| GameCube || nkit.iso || Yes || Yes || Yes || Same as compacted GameCube iso<br />
|-<br />
| GameCube || nkit.gcz || No || Yes || Yes || GCZ is Dolphin's own block seekable compression format<br />
|-<br />
| Wii || nkit.iso || No (Yes with Dev Kit?) || Yes || Yes || RVT-H format only playable in Dolphin or a Dev Kit (Untested)<br />
|-<br />
| Wii || nkit.gcz || No || Yes || Yes || RVT-H in GCZ playable in Dolphin only<br />
|}<br />
<br />
NKit Format images contain the bare minimum of data. All junk and scrubbing is removed. Non-uniform (NonJunk) data is also preserved. Wii encryption and hashes are fully recreatable and removed. Meaning any remaining data is as compressible as possible.<br />
<br />
=====Dat Files=====<br />
NKit relies heavily on Dat files. The Redump Dat files (GameCube and Wii) hold the checksums of all the good images. NKit uses this information to help recover from modified images. Without these files NKit can only unscrub images and can't know if they're modified in other ways.<br />
<br />
Multiple Dat files can be placed in the folders. NKit will load the one with latest modified date<br />
<br />
=====Mask Renaming Output Files=====<br />
Images output that match Redump or Other Dat file entries can be renamed to a mask. The masks allow processed images to be moved in to separate folder for Redump Matched, Custom Matched or Match Fail.<br />
<br />
There are various masks that can be used in the renaming:<br />
{| class="wikitable"<br />
|-<br />
! Item !! Name !! Comment<br />
|-<br />
| <code>%src</code> || Source image path || Path of the source image<br />
|-<br />
| <code>%nmo</code> || Original filename || <br />
|-<br />
| <code>%nmd</code> || Disc Title || Read from the header of the disc<br />
|-<br />
| <code>%nmg</code> || GameTDB Title || Title from the GameTDB dat file<br />
|-<br />
| <code>%nmm</code> || Matched Name || Redump or Custom Dat matched entry - falls back to %nmg then %nmo<br />
|-<br />
| <code>%dno</code> || Disc No. || E.g. (Disc 2) - Only added if not in the filename already. Not output if (Disc 1)<br />
|-<br />
| <code>%rev</code> || Revision No. || E.g. (Rev 1) - Only added if not in the filename already. Not output if (Rev 0)<br />
|-<br />
| <code>%ver</code> || Revision No. || E.g. (v1.01) - Only added if not in the filename already. Not output if (v1.00)<br />
|-<br />
| <code>%ext</code> || File Extension || Does not contain leading .<br />
|-<br />
| <code>%crc</code> || CRC32 || Output file CRC32<br />
|-<br />
| <code>%md5</code> || MD5 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%sha</code> || SHA1 || Only calculated if the config is set to Calculate Hashes<br />
|-<br />
| <code>%id4</code> || Disc ID4 || The Disc ID<br />
|-<br />
| <code>%id6</code> || Disc ID6 || The Disc ID and Maker Code<br />
|-<br />
| <code>%id8</code> || Disc ID8 || The Disc ID, MakerCode, Disc No. and Disc Revision (Disc No and Revision are as Hex bytes e.g. 0000)<br />
|}<br />
<br />
=====Recovery Files=====<br />
The concept of recovery files is that by saving the bare minimum of information from Redump good images. NKit can recover many modified images.<br />
* '''GameCube''' other tools that modify these images scrub and move (sometimes reorder) the files in the filesystem. NKit recovery files are the appldr.bin (a handful are used across all images) and fst.bin (unique per image, NKit stores some header info in these files also).<br />
* '''Wii''' - other tools remove unused blocks or scrub them by wiping unused blocks with 00 or FF bytes. It is common for Non-Data Partitions are also removed to save space. NKit recovery files consist of the channel and update partitions.<br />
<br />
=====Brute Force Recovery=====<br />
In addition to the recovery files, NKit can attempt to force a match by checking various Header CRCs and Update Partition CRCs (for Wii only). Once a match is found the modifications can be applied to the output file and the CRC will match the Dat entry.<br />
<br />
NKit does this by CRCing sections of files as it processes them. Upon completing a conversion other CRCs calculated combined to attempt to make a match. Header modifications include Region and for Wii swapping the Update partition CRC and using the Data Partition data-header for the disc header.<br />
<br />
=====Summary Log=====<br />
The summary log is an output file used to track conversions. It holds stores the following columns:<br />
TimeStamp, App, System, ReadResult, OutputResult, OutputCrc, OutputID4, RedumpMatch, RedumpName, InputSize, OutputSize, FullSize, InputFilename, OutputFilename, MD5, SHA1, Passes, SecondsElapsed, ErrorMessage<br />
<br />
This file should be used to evaluate the results of a large conversion before deleting source files. The data values are tab separated for pasting in to your favourite spreadsheet app.<br />
<br />
==Conversions==<br />
NKit can convert to and from various formats. To simplify recovering and converting to and from the formats a multi pass system will process the image through the various stages.<br />
<br />
[[File:NKitConversionsKey.jpg|right]]<br />
[[File:NKitConversions.jpg|framed|center]]<br />
<br />
==Configuration==<br />
The NKit.dll uses a configuration file name NKit.dll.config. This file contains base configuration. There are multiple sections or which the first 3 contain items the user will be most interested in editing:-<br />
* <code><appSettings></code> - General settings<br />
* <code><gamecube></code> - GameCube Redump and recovery settings. Including some lookup data<br />
* <code><wii></code> - Wii Redump and recovery settings. Including some lookup data<br />
<br />
====AppSettings====<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| SearchSubfolders || Search sub folders when finding images to process<br />
|-<br />
| WaitForKeyAfterProcessing || Wait for newline entry before exiting a commandline app<br />
|-<br />
| Path || All paths are relative to the working folder - global substitutions %exe=exe path, %pth=Path value. A base path that can be used in other paths with %pth, paths can be absolute or relative to the working folder - not supported by apps above<br />
|-<br />
| TempPath || Temp working folder, absolute or relative to current working directory - best to be the same drive as the output<br />
|-<br />
| SummaryLog || Summary log path, a log of all conversions with image details - check this file before deleting source files etc<br />
|-<br />
| EnableSummaryLog || Turn the SummaryLog on or off<br />
|-<br />
| FullVerify || Verify the output file by converting it back to iso in memory to ensure the CRC is valid<br />
|-<br />
| CalculateHashes || Calculates additional MD5 and SHA1 hashes. This is required to output them in to the summary log or use them in the rename file masks<br />
|-<br />
| NkitFormat || Save NKit as iso or gcz<br />
|-<br />
| NkitReencode || Force a full reencode when converting nkit to nkit. If false when converting nkit.iso to nkit.gcz, only the gcz coversion is performed<br />
|-<br />
| MaskRename || Rename output images to the masks in the gamecube and wii config sections, else use the source path and filename<br />
|-<br />
| TestMode || Convert images, but delete them when complete - View SummaryLog for results<br />
|-<br />
| RecoveryMatchFailDelete || Recovery Only - delete failed matches, false will rename them to the FailMatchRenameToMask - they may be corrupt<br />
|-<br />
| DeleteSource || Delete the source file if FullVerify returns VerifySuccess (FullVerify setting must be true) TestMode=true cancels this setting<br />
|-<br />
| OutputLevel || Logging level when processing 0=Silent, 1=Info, 2=Detailed<br />
|-<br />
| DatPathNameGameTdbMask || Path and mask to GameTDB file - latest file is used<br />
|}<br />
====GameCube / Wii====<br />
GameCube and Wii share a log of the same settings. Depending on which image is being processed the corresponding section is referenced. <br />
<br />
{| class="wikitable"<br />
|-<br />
! Item !! Description<br />
|-<br />
| DatPathRedumpMask || Path and mask to redump dat file - latest file is used<br />
|-<br />
| DatPathCustomMask || Path and mask to custom dat file - latest file is used<br />
|-<br />
| RedumpMatchRenameToMask || Used when an output file's CRC matches and entry in the Redump dat. Move and Rename the file to this mask<br />
|-<br />
| CustomMatchRenameToMask || Used when an output file's CRC matches and entry in the Custom dat. Move and Rename the file to this mask<br />
|-<br />
| MatchFailRenameToMask || Used when an output file's CRC fails to match any dat. Move and Rename the file to this mask<br />
|-<br />
| RecoveryFilesPath || Path to Redump recovery files. Recovery extracted files are stored here if the file's CRC is known<br />
|-<br />
| OtherRecoveryFilesPath || Path to Other recovery files. Recovery extracted files are stored here if the file's CRC is not known<br />
|-<br />
| NkitUpdatePartitionRemoval'''*''' || Remove the update partition when converting to nkit, the CRC of the removed partition is stored in the NKit header for restoration<br />
|-<br />
| NkitRecoveryFilesPath'''*''' || Path to Wii NKit extracted update partition when extracted by ConvertToNKit with NkitUpdatePartitionRemoval set to ''true''<br />
|}<br />
'''*''' Wii section only<br />
<br />
==Getting Started==<br />
<br />
The apps will work out of the box, however some needs to take place to set up the Redump matching and Recovery files if you're looking to recover images to match Redump Dat entries. The previous sections cover the features mentioned in this section.<br />
<br />
# Download the Dat files from Redump and place in the Dats folders<br />
# Download the GameTDB dat and place in Dats\GameTdb folder<br />
# Place any Recovery files in the Recovery\Redump folders<br />
# Edit the NKit.dll.config file<br />
<br />
===Configuration Options===<br />
<br />
====Smallest Image Output Configurations====<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || <code>NkitFormat="iso"</code><br />
|-<br />
| nkit.gcz || No || <code>NkitFormat="gcz"</code><br />
|}<br />
<br />
====Smallest Wii Output Configurations====<br />
<br />
There are a few factors to consider. The table below shows the configurations that create the smallest Wii images from Smallest to Largest. The relevant configuration options are also listed.<br />
<br />
Removed Update partitions are stored in the Redump Recovery folder if they don't already exist. If they are not known they are stored in the NKitExtracted Recovery folder. The Removed Update Partition CRC is stored in the NKit header so it can be safely restored.<br />
<br />
{| class="wikitable"<br />
|-<br />
! NKit Format !! External Compression !! Update Partition Removed !! Configuration<br />
|-<br />
| nkit.iso || 7-zip || Yes || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.gcz || No || Yes || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="true"</code><br />
|-<br />
| nkit.iso || 7-zip || No || <code>NkitFormat="iso", NkitUpdatePartitionRemoval="false"</code><br />
|-<br />
| nkit.gcz || No || No || <code>NkitFormat="gcz", NkitUpdatePartitionRemoval="false"</code><br />
|}<br />
External compression must be applied after NKit has completed. GCZ cannot match 7-zip. GCZ is a block seekable compression that is supported by Dolphin.</div>Nanook