Difference between revisions of "RealWnD"

From WiiBrew
Jump to navigation Jump to search
m (intro fixes)
(Name is more versatile than '''Name''' since it is also rendered in BOLD, but it would link back to itself if included by another page.)
Line 16: Line 16:
 
}}
 
}}
  
'''RealWnD''' is a 1:1 Wii NAND Dumper based on YaWnD 0.3 but with several improvements.  All currently available Wii NAND Dumpers misunderstand the IOS_Read() returned error code -12 and cause the dumped image file to be different from the image that would extracted by an external hardware programmer off a de-soldered NAND chip.
+
[[RealWnD]] is a 1:1 Wii NAND Dumper based on YaWnD 0.3 but with several improvements.  All currently available Wii NAND Dumpers misunderstand the IOS_Read() returned error code -12 and cause the dumped image file to be different from the image that would extracted by an external hardware programmer off a de-soldered NAND chip.
  
 
After analyzing, the -12 code seems very likely to be an ECC error but not simply a bad block.  Most pages with a -12 return code might be unmanaged free blocks (with the ECC error caused by erased and not yet reprogrammed blocks).  Zeroing these pages is a bit dangerous.  If it happens that it's the very first time the ECC error occurred for a good page while dumping, zeroing it might render the dumped image useless.
 
After analyzing, the -12 code seems very likely to be an ECC error but not simply a bad block.  Most pages with a -12 return code might be unmanaged free blocks (with the ECC error caused by erased and not yet reprogrammed blocks).  Zeroing these pages is a bit dangerous.  If it happens that it's the very first time the ECC error occurred for a good page while dumping, zeroing it might render the dumped image useless.

Revision as of 00:38, 9 May 2009

Template:Infobox homebrewapp

RealWnD is a 1:1 Wii NAND Dumper based on YaWnD 0.3 but with several improvements. All currently available Wii NAND Dumpers misunderstand the IOS_Read() returned error code -12 and cause the dumped image file to be different from the image that would extracted by an external hardware programmer off a de-soldered NAND chip.

After analyzing, the -12 code seems very likely to be an ECC error but not simply a bad block. Most pages with a -12 return code might be unmanaged free blocks (with the ECC error caused by erased and not yet reprogrammed blocks). Zeroing these pages is a bit dangerous. If it happens that it's the very first time the ECC error occurred for a good page while dumping, zeroing it might render the dumped image useless.

Besides the -12 code, some people encounter a -11 code and stop their dumping. I guess the -11 code might be NAND read timeout and NAND status error. Stopping the dumping is not a good idea but zeroing it would be safe. I also provide an extra Page Debug Dump of these -11 codes for the user to later analyze.

For those whose NAND dumps without a -11 code, RealWnD can help them make a 100% 1:1 dump which is exactly the same as a hardware programmer dump.

Improvement

  • Real 1:1 dump of NAND Flash by processing error code -11 and -12
  • Greatly reduce dump time by opening files once instead of appending repeatedly
  • Add log file for all error pages
  • Change to new style FAT management code for easily compiling
  • Add Debug Dump for -11 code or others for future analysis

How To Use

Most operations are the same as YaWnd. You can use button 1 to toggle SD and USB, button 2 to toggle +ECC and normal dump, and button A to start dump. In addition, you can use button B to toggle on/off for Debug Dump. A log file WiiFlash.log will log all page error return code. If DebugDump turs on, several image files WFD_<page#>_<error code>.img will be created for future analysis.


Changelog

  • v0.11 (08 May 2009) minor bugfix: error code -12 mis-typed as 12 cause error code -12 unnecessarily retry once.
  • v0.1 (08 May 2009) Initial release.

Thanks To

  • Homebrew Channel, DevkitPPC and libOGC developing crew.
  • Redbird's YaWnd source code.
  • Waninkoko's Wad Manager FAT management source code.