From WikiTemp, the GBAtemp wiki
 
(53 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==WIP!!==
 
==WIP!!==
NKit documentation is WIP, once released this documentation will be fleshed out and cover as much as possible...
+
NKit documentation is WIP. It will be added to as people ask questions and raise issues...
  
 
==Overview==
 
==Overview==
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube Disc Images.
+
NKit is a ''Nintendo ToolKit'' that can Recover and Preserve Wii and GameCube disc images
  
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump.
+
'''Recovery''' is the ability to rebuild source images to match the known good images verified by Redump
  
'''Preserve''' is the ability to shrink images and convert them back to the source iso.
+
'''Preserve''' is the ability to shrink any image and convert it back to the source ISO
 +
 
 +
NKit can convert to ISO and the NKit format. The NKit format is designed to shrink an image to its smallest while ensuring it can be restored back to the original source data. NKit images are also playable with Dolphin, Swiss and Nintendont (but not Wii USB Loaders yet).
  
 
==Key Uses==
 
==Key Uses==
* Unscrub Wii/GC images from scene/scrubbed/wbfs(file)/iso.dec/iso/gcz
+
* Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images
* Convert GC images to nkit format (small, playable, reversable)
+
* Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression
 
* Preserve and shrink Scrubbed and Custom images
 
* Preserve and shrink Scrubbed and Custom images
 
* Preserve Wii images with controlled removal of update partition
 
* Preserve Wii images with controlled removal of update partition
  
 
===Recovery===
 
===Recovery===
* Recover scrubbed, scene images to match Redump verified images
+
* Recover scrubbed, header/region hacked images to match Redump verified images
===NKit Preservation Format===
+
===Preservation - NKit Format===
 +
* Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data
 +
 
 
==Features==
 
==Features==
* Wii RVT-R Support
+
 
 +
* Recovery and Preservation of GameCube and Wii images
 +
* NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)
 +
* GC NKit format aligns audio and tgc files to 32k for playability
 +
* Wii NKit format removes hashes and encryption (Dolphin Compatible)
 +
* Reusable library for use in other projects
 +
* Test Mode
 +
* Summary log of all conversions
 +
* Rename images that match Dat file entries to a configurable mask
 +
* Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)
 +
* Scrubbed and Hacked preservation support
 +
 
 +
===Formats===
 +
* GCZ support
 +
* ISO.DEC read support
 +
* WBFS read support
 +
* ISO support
 +
* RVT-R Wii ISO read support
 +
* NKit Format support (smallest format and Dolphin compatible)
 
* Read the above images from Rar/Zip/7zip etc
 
* Read the above images from Rar/Zip/7zip etc
* GC nkit format CRC matches source image CRC
+
 
* GC nkit format can be gcz un/compressed by the included apps
+
===Recovery Abilities===
* GC nkit format aligns audio and tgc files to 32k for playability
+
* Rename restored images to match Redump dat crc
+
* Rename restored images to match a secondary Redump compatible dat crc
+
 
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions
 
* Insert missing Wii Update (inc rare extra data), Channel and VC partitions
 
* Replace Brickblocked Update partitions
 
* Replace Brickblocked Update partitions
 
* Auto fixes modified disc headers (where the Data header remains intact)
 
* Auto fixes modified disc headers (where the Data header remains intact)
* Fixes rare corrupt Wii partition table (caused by WBM)
+
* Fixes rare corrupt Wii partition table (caused by Wii Backup Manager)
* Fixes rare Wii 0 byte file scrubbing (caused by WIT)
+
* Fixes scrubbed trailing file 0's
 
* Fixes truncated Wii images (where the Data partition is intact)
 
* Fixes truncated Wii images (where the Data partition is intact)
* Fixes slightly overdumped images too (descrambled)
+
* Fixes slightly overdumped images (from descramble tools)
 
* Fixes Wii Data partitions moved before 0xF800000 to save space
 
* Fixes Wii Data partitions moved before 0xF800000 to save space
 
* Fixes compacted GC images
 
* Fixes compacted GC images
Line 41: Line 60:
 
* Fixes modified Wii region and ratings
 
* Fixes modified Wii region and ratings
 
* Support for GC images with junk not generated with the image ID
 
* Support for GC images with junk not generated with the image ID
* All regions supported
+
 
* Optimised for performance
+
* GC NKit format is compatible with hardware and Dolphin
+
* Wii NKit format removes hashes and encryption (Dolphin Compatible)
+
* Reusable library for use in other projects
+
 
==Requirements==
 
==Requirements==
* Windows | Linux | Mac (Untested)
+
* Windows | Linux | Mac
 +
* .Net for Windows or Mono 4.6.1 for Mac or Linux (Will be ported to dotnet core 3.0 soon)
 +
 
 
==Download==
 
==Download==
 +
<big><big>[https://gbatemp.net/download/nkit.36157/ NKit v1.4]</big></big>
 +
 +
[https://github.com/Nanook/NKit source code]
 +
 +
==Documentation==
 +
* [[NKit/UserGuide|User Guide]] - Please read :-)
 +
* [[NKit/FAQ|FAQ]] - Coming soon...
 +
* [[NKit/Glossary|Glossary]]
 +
 +
====Technical====
 +
* [[NKit/Discs|Discs]] : GameCube and Wii disc details
 +
* [[NKit/DiscFileSystem|File Systems]] : Info about the GameCube/Wii filesystems and gaps
 +
* [[NKit/NKitFormat|The NKit Format]] : Detailed information about the NKit Format
 +
 
==History==
 
==History==
 +
 +
====Version 1.4====
 +
* Fixed Hash Preservation for images with corrupt FSTs
 +
* Fixed "Truncated RVT-R image detected..." message being shown incorrectly
 +
* FST filenames are now correctly encoded with Shift-JIS
 +
 +
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.
 +
 +
====Version 1.3====
 +
* Added RVT-H Detection. This is not currently supported - An error is thrown and logged
 +
* Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz
 +
* 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
 +
* Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious
 +
* Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)
 +
* 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
 +
* ProcessorApp: Added failure message to log errors (same as cmldline exe output)
 +
* ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso
 +
* ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load
 +
* ProcessorApp: Fixed progress .1.2.3... text alignment in the log output
 +
* ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char
 +
 +
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.
 +
 +
====Version 1.2====
 +
* Updated to .Net 4.7.2 (Preparation for long file name support)
 +
* Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)
 +
* Added support for images that have no Magic (default to GC - for 1 GC early system disc)
 +
* Fixed the ExtractionApp GC Region always showing Japan
 +
* Corrected NKitExtracted path in config
 +
* Added missing Wii Jakers config entry
 +
* Fixed Double "Truncated RVT-R" message
 +
* Fixed ProcessorApp Gui Exception not being captured
 +
* Fixed Drag Drop message being cleared when a non supported file is dropped
 +
* Modified some public class accessibility to make them internal
 +
 +
There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.
 +
 +
====Version 1.1====
 +
* 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.
 +
* Fixed a minor ProcessingApp bug where the output path wouldn't be used.
 +
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.
 +
 
====Version 1.0====
 
====Version 1.0====
 +
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.
  
==FAQ==
+
* Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)
[[NKit/FAQ|FAQ]]
+
* Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)
 +
* 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction
 +
 
 +
====Version 0.5====
 +
First stable version
 +
 
 +
==Future Features==
 +
* WBFS output (for easy output for Wii Hardware use)
 +
* CISO reading
 +
* Port the code to dotnet core 3 when it's released (GUIs too)
 +
* Port to Android
  
 
[[Category:Wii Utilities]]
 
[[Category:Wii Utilities]]
 
[[Category:Wii]]
 
[[Category:Wii]]
 +
 +
==Credits==
 +
 +
* Johnsanc - Testing, ideas and motivation
 +
* JosJuice - Disc format and Dolphin knowledge
 +
* GerbilSoft - Disc format knowledge (+ RVT-R) ([https://github.com/GerbilSoft/rvthtool rvthtool] / [https://github.com/GerbilSoft/rom-properties rom-properties])
 +
* Osupka - UltimateUnscrubber code
 +
* LedZeppelin68 - Nasos (ISO.DEC) code
 +
* Wiimm - WIT (WBFS) code
 +
* ToeKnee - Testing
 +
* Dack - Wii Scrubber code
 +
* Scifi76 - Wii Scrubber dll (fst.bin) code
 +
* All the game preservationists out there - hope this saves you some space...

Latest revision as of 19:18, 31 December 2019

WIP!!

NKit documentation is WIP. It will be added to as people ask questions and raise issues...

Overview

NKit is a Nintendo ToolKit that can Recover and Preserve Wii and GameCube disc images

Recovery is the ability to rebuild source images to match the known good images verified by Redump

Preserve is the ability to shrink any image and convert it back to the source ISO

NKit can convert to ISO and the NKit format. The NKit format is designed to shrink an image to its smallest while ensuring it can be restored back to the original source data. NKit images are also playable with Dolphin, Swiss and Nintendont (but not Wii USB Loaders yet).

Key Uses

  • Unscrub/Rebuild Wii/GC images from scrubbed/header+region hacked/wbfs(file)/iso.dec/iso/gcz to match Redump good images
  • Convert Wii/GC images to NKit format (small, playable, reversible) - with optional gcz compression
  • Preserve and shrink Scrubbed and Custom images
  • Preserve Wii images with controlled removal of update partition

Recovery

  • Recover scrubbed, header/region hacked images to match Redump verified images

Preservation - NKit Format

  • Convert Redump, Hacks, Scrubbed images to NKit format and back to the original iso data

Features

  • Recovery and Preservation of GameCube and Wii images
  • NKit Format (smallest format and Dolphin compatible, GC is hardware compatible)
  • GC NKit format aligns audio and tgc files to 32k for playability
  • Wii NKit format removes hashes and encryption (Dolphin Compatible)
  • Reusable library for use in other projects
  • Test Mode
  • Summary log of all conversions
  • Rename images that match Dat file entries to a configurable mask
  • Supports 100% of Redump images (Unlicensed, All Regions, Multi Disc etc)
  • Scrubbed and Hacked preservation support

Formats

  • GCZ support
  • ISO.DEC read support
  • WBFS read support
  • ISO support
  • RVT-R Wii ISO read support
  • NKit Format support (smallest format and Dolphin compatible)
  • Read the above images from Rar/Zip/7zip etc

Recovery Abilities

  • Insert missing Wii Update (inc rare extra data), Channel and VC partitions
  • Replace Brickblocked Update partitions
  • Auto fixes modified disc headers (where the Data header remains intact)
  • Fixes rare corrupt Wii partition table (caused by Wii Backup Manager)
  • Fixes scrubbed trailing file 0's
  • Fixes truncated Wii images (where the Data partition is intact)
  • Fixes slightly overdumped images (from descramble tools)
  • Fixes Wii Data partitions moved before 0xF800000 to save space
  • Fixes compacted GC images
  • Fixes moved and reordered GC files
  • Fixes modified GC headers (inc. title, region hacks)
  • Fixes mod chip modified GC apploaders
  • Fixes GC images with non conformant junk
  • Fixes modified Wii region and ratings
  • Support for GC images with junk not generated with the image ID

Requirements

  • Windows | Linux | Mac
  • .Net for Windows or Mono 4.6.1 for Mac or Linux (Will be ported to dotnet core 3.0 soon)

Download

NKit v1.4

source code

Documentation

Technical

  • Discs : GameCube and Wii disc details
  • File Systems : Info about the GameCube/Wii filesystems and gaps
  • The NKit Format : Detailed information about the NKit Format

History

Version 1.4

  • Fixed Hash Preservation for images with corrupt FSTs
  • Fixed "Truncated RVT-R image detected..." message being shown incorrectly
  • FST filenames are now correctly encoded with Shift-JIS

There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.

Version 1.3

  • Added RVT-H Detection. This is not currently supported - An error is thrown and logged
  • Fixed NkitReencode. It was always reencoding and not copying the NKit file when converting nkit.iso <-> nkit.gcz
  • 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
  • Moved the SummaryLog to the Processed folder rather than the app folder to make it more obvious
  • Added settings home support. ~ at the start of a Path will insert the user's home directory (all OSs)
  • 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
  • ProcessorApp: Added failure message to log errors (same as cmldline exe output)
  • ProcessorApp: Disabled the checkbox for 'Remove and Preserve Wii Update Partitions' when Recovering or Converting to iso
  • ProcessorApp: Fixed checkbox for 'Remove and Preserve Wii Update Partitions' not being set on app load
  • ProcessorApp: Fixed progress .1.2.3... text alignment in the log output
  • ProcessorApp: Fixed the output log being truncated when a partition ID contained a null char

There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.

Version 1.2

  • Updated to .Net 4.7.2 (Preparation for long file name support)
  • Added support for images that a file ends on a non 4 byte alignment (for 1 shrunk GC demo)
  • Added support for images that have no Magic (default to GC - for 1 GC early system disc)
  • Fixed the ExtractionApp GC Region always showing Japan
  • Corrected NKitExtracted path in config
  • Added missing Wii Jakers config entry
  • Fixed Double "Truncated RVT-R" message
  • Fixed ProcessorApp Gui Exception not being captured
  • Fixed Drag Drop message being cleared when a non supported file is dropped
  • Modified some public class accessibility to make them internal

There should be no breaking changes or conversion difference for any previously successfully verified images. Please report any issues.

Version 1.1

  • 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.
  • Fixed a minor ProcessingApp bug where the output path wouldn't be used.

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.

Version 1.0

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.

  • Fixed a bug in the GC Format (This alters 12 of the GC Redump images - just reencode them if you verify against NKit dats)
  • Added Wii NKit Format (100% Redump tested, Scrubbed & Custom Support)
  • 2 Windows (Sorry Linux & Mac users) GUI Apps added, including file extraction

Version 0.5

First stable version

Future Features

  • WBFS output (for easy output for Wii Hardware use)
  • CISO reading
  • Port the code to dotnet core 3 when it's released (GUIs too)
  • Port to Android

Credits

  • Johnsanc - Testing, ideas and motivation
  • JosJuice - Disc format and Dolphin knowledge
  • GerbilSoft - Disc format knowledge (+ RVT-R) (rvthtool / rom-properties)
  • Osupka - UltimateUnscrubber code
  • LedZeppelin68 - Nasos (ISO.DEC) code
  • Wiimm - WIT (WBFS) code
  • ToeKnee - Testing
  • Dack - Wii Scrubber code
  • Scifi76 - Wii Scrubber dll (fst.bin) code
  • All the game preservationists out there - hope this saves you some space...