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
m (Robot: Cosmetic changes)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Infobox homebrewapp
+
{{Infobox homebrew
 
| title      = A Real 1:1 Wii NAND Dumper
 
| title      = A Real 1:1 Wii NAND Dumper
 
| image      =  
 
| image      =  
| desc        = This program is a 1:1 Wii NAND Dumper based on YaWnD 0.3 with several improvements
+
| type        = system tool
| type        = Utility
 
 
| license    = GPL
 
| license    = GPL
| author      = pcfree
+
| author      = [[User:pcfree|pcfree]]
| display    =
+
| version    = 0.21
| version    = 0.1
+
| download    = Media:RealWnD021.zip
| download    = http://www.wiibrew.org/w/images/5/5f/RealWnD01.zip
 
| source      = included in the binary
 
| website    =
 
 
| peripherals = {{Wiimote}} {{FrontSD}} {{USBMSD}}  
 
| peripherals = {{Wiimote}} {{FrontSD}} {{USBMSD}}  
| hbc        = 1 <!-- Only if "Full" HBC Support (package contains boot.dol or boot.elf compatible with HBC beta 9, meta.xml, and icon.png) -->
 
 
|  
 
|  
 
}}
 
}}
  
== Introduction ==
+
'''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.
This program is a 1:1 Wii NAND Dumper based on YaWnD 0.3 with several improvements. All currently available Wii NAND Dumpers misunderstand the IOS_Read() returned error code -12 and cause dumped image file to be different from extracted image of external hardware programmer for de-soldered NAND chip.
 
  
After analyzing, the -12 code seems very likely to be ECC error but not simply to be bad block. And most pages with -12 return code might be unmanaged free block (ECC error due to erased but not programmed yet). Zeroing these pages is a bit dangerous. If it happens it's the very first time the ECC error occurred for a good page while dumping, zeros it might cause 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.
  
Besides the -12 code, some people encounters -11 code and stop their dumping. I guess the -11 code might be NAND read timeout and NAND status error. Stopping dumping is not a good idea but zeroing it would be safe. I also provide extra Page Debug Dump for these -11 code for user to analyze it.
+
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 whose NAND dump without -11 code, the RealWnD can help them make 100% 1:1 dump which is exact the same with hardware programmer dump.
+
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 ==
 
== Improvement ==
Line 33: Line 27:
  
 
== How To Use ==
 
== 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.
+
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 ==
 
== Changelog ==
 +
* v0.21 (17 May 2009) add more check to prevent useless dump.
 +
* v0.2 (16 May 2009) bugfix: Check IOS_Open return value to make sure if it has succeeded to open NAND.
 +
* 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.
 
* 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.

Latest revision as of 18:17, 10 August 2009

A Real 1:1 Wii NAND Dumper
General
Author(s)pcfree
TypeSystem tool
Version0.21
LicenseGPL
Links
Download
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.21 (17 May 2009) add more check to prevent useless dump.
  • v0.2 (16 May 2009) bugfix: Check IOS_Open return value to make sure if it has succeeded to open NAND.
  • 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.