In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "RealWnD"

From WiiBrew
Jump to navigation Jump to search
(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.)
m (Undo: Eh, the convention is to use '''Name'''. Using a link may confuse new editors and gives a negligible benefit.)
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 03:57, 9 May 2009

A Real 1:1 Wii NAND Dumper
General
Author(s)pcfree
TypeUtility
Version0.11
LicenseGPL
Links
[[RealWnD011.zip|Download]]
Source
Peripherals
Wiimote.svg Loads files from the Front SD slot USB mass storage device

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.