Giter VIP home page Giter VIP logo

recovery_menu's Introduction

screenshot

Wii U Recovery Menu

A simple recovery menu running on the IOSU for unbricking, which can be booted using udpih.

ℹ️ Some Wii U's don't show any TV output, if it hasn't been configured properly before.
If that's the case download the recovery_menu_dc_init file and rename it to recovery_menu.
This build does display controller initialization and might fix the issue.
Note that this build only outputs 480p and has no GamePad output!

ℹ️ The recovery menu updates the power LED for debugging. The following patterns are used:
purple-off blinking: kernel code running
purple-orange blinking: menu thread running
purple: menu is ready and running

Options

Set Coldboot Title

Allows changing the current title the console boots to.
Useful for unbricking CBHC bricks.
Possible options are:

  • Wii U Menu (JPN) - 00050010-10040000
  • Wii U Menu (USA) - 00050010-10040100
  • Wii U Menu (EUR) - 00050010-10040200

On non-retail systems the following additional options are available:

  • System Config Tool - 00050010-1F700500
  • DEVMENU (pre-2.09) - 00050010-1F7001FF
  • Kiosk Menu - 00050010-1FA81000

Dump Syslogs

Copies all system logs to a logs folder on the root of the SD Card.

Dump OTP + SEEPROM

Dumps the OTP and SEEPROM to otp.bin and seeprom.bin on the root of the SD Card.

Start wupserver

Starts wupserver which allows connecting to the console from a PC using wupclient.

Load Network Configuration

Loads a network configuration from the SD, and temporarily applies it to use wupserver.
The configurations will be loaded from a network.cfg file on the root of your SD.
For using the ethernet adapter, the file should look like this:

type=eth

For using wifi:

type=wifi
ssid=ssidhere
key=wifikeyhere
key_type=WPA2_PSK_AES

Pair Gamepad

Displays the Gamepad Pin and allows pairing a Gamepad to the system. Also bypasses any region checks while pairing.
The numeric values represent the following symbols: ♠ = 0, ♥ = 1, ♦ = 2, ♣ = 3.
Note that rebooting the system might be required to use the newly paired gamepad.

Install WUP

Installs a valid signed WUP from the install folder on the root of your SD Card.
Don't place the WUP into any subfolders.

Edit Parental Controls

Displays the current Parental Controls pin configuration.
Allows disabling Parental Controls.

Debug System Region

Fixes bricks caused by setting productArea and/or gameRegion to an invalid value. Symptoms include being unable to launch System Settings or other in-region titles.

System Information

Displays info about several parts of the system.
Including serial number, manufacturing date, console type, regions, memory devices...

Submit System Data

Allows submitting system information to an online database to collect various statistics about Wii U consoles.
This is entirely optional and personally identifying information will be kept confidential.
The database can be found here!

Building

# build the docker container
docker build -t recoverybuilder .

# build the menu
docker run -it --rm -v ${PWD}:/project recoverybuilder make

# build the menu with display controller initialization
docker run -it --rm -v ${PWD}:/project recoverybuilder make DC_INIT=1

Credits

recovery_menu's People

Contributors

garyodernichts avatar gerbilsoft avatar v10lator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

recovery_menu's Issues

More of a suggestion

A lot of people would like to add factory reset into udpih.
Also for those that dont have Nintendo support in their country like me
I would be soo happy if you add that.
Thanks!

can display parental code ?

I try to recover a Wiiu with lock user and lock boot screen with parental code lock, can be added an option to disable or show the parental code in the recovery menu?

Indicate when waiting for a keypress

When trying to use recovery_menu without the benefit of a display, it would be nice to know if the device has finished a task (dumped logs, dumped roms, loaded network etc). I made a small enhancement to waitButtonInput to flash yellow when it's waiting for a key. It might be good to have it flash red if an operation failed.

Add the following as the first line in the waitButtonInput function in ios_mcp/source/menu.c

    setNotificationLED(NOTIF_LED_ORANGE|NOTIF_LED_ORANGE_BLINKING);

Then before the return, turn it purple again

   setNotificationLED(NOTIF_LED_BLUE|NOTIF_LED_RED);

Hope this helps those working in the dark.

FTP server in recovery_menu

Hello! How can I mount MLC memory using FTP server recovery_menu?? Is it possible to use a standard FTP client with a GUI instead of a python script?? Tools known to me are not capable of decompressing an MLC dump. I will be grateful for any help.

The WII U shuts down after injecting the exploit

Hi all, I'm trying to boot into the recovery menu on my WII U via a 2017 Switch, but when I plug the USB into the WII U and it confirms successful injection of the exploit, the console shuts down.

What can it depend on? How can i solve?

Thanks for the replies

Add NAND restore function

Excellent work on this (and UDPIH)!

It would be really nice to add a NAND backup restore function that can read NAND backup files from the SD card. This would be an easy way to undo damage to the OS, especially when the nature of the damage isn't obvious.

Add "system information" screen

Add a "system information" screen. Some information that would be useful to display:

  • System model (SEEPROM 0x170)
  • System serial number (SEEPROM 0x158, 0x160)
  • Security level (OTP 0x80; indicates retail, debug, or factory)
  • Board type (SEEPROM 0x042)
  • Boot source (SEEPROM 0x046; usually N1, need to check if PCFS changes this)
  • SATA device (SEEPROM 0x058; number and description)
  • Console type (SEEPROM 0x05A; number and description)
  • Product area, game region (SEEPROM 0x148, 0x14C; mirrored from sys_prod.xml; my WUP-101(02) says prod_area=2, game_region=0?)

I might try adding some of these myself later this week.

Recovery Menu not launching properly

I tried with the regular menu but I had no image on my tv. When I changed it for the dc unit menu I had a white square and nothing else happens. The LED on my console is purple so it is suppose to work but nothing goes further.
IMG_3306

Add an FTP Server

I was asking if you can add a FTP Server to the recovery menu. In my situation, I downloaded a custom theme with tiramisu for my menu. A week ago I deleted tiramisu because no apps were loading up, but then I realized it was the custom wii u menu theme. At the moment, I can't open anything. Including system settings, internet browser, or any of my games. If there is FTP Server I could replace my wii u menu back to default, I could Factory reset my Wii U with system settings. Or if its not too much to ask, could you put themer inside the boot menu so that I can automatically change it back to default instead of doing it manually. I don't think this is a common issue, however, if you could help me save my wiiu, i would really appreciate it. Thank you.

Pair Wii U gamepad without watching TV

Hello, it happens to me that my Wii U has a damaged video output, and I wanted to ask if it were possible to use the gamepad link function and have the console give me a pre-established key, that I already know so that I can enter the key into the gamepad without see the screen. Or maybe the console gives me the code, for example by flashing the power light or the disk light.
Well I hope there is some option for my case, thank you

Not seeing the menu

Hello,
We last used my Wii U about two month ago, everything was fine. I tried to power it on last weekend, it did nothing exept turn the light from red to blue. The disc is spinning and can be eject. The gamepad open but lose its signal quickly. I tried to see if your method with a pico would help. I wasn't able to see anything so I couldn't navigate well. I managed to get otp.bin and seeprom.bin while in the normal recovery menu. I tried to reboot it but no success. I managed to get this screen with the recovery_menu_dc_init, I don't know if I did something but my console is still stuck. I like to know if I can save it or if it's dead.
rn_image_picker_lib_temp_b7c78511-cff2-4b5f-91f3-b4e6075432d3

[Feature] Add key presses

Sometimes you need to do something blind, and it would be nice to have keypress counts in the readme.

Add NAND dumper

It would be useful to add the functionality of Wii U NAND Dumper to recovery_menu. Possibly one option per type (slc, slccmpt, mlc), or just a single option for "dump all 3".

https://github.com/koolkdev/wiiu-nanddumper/

Adding a NAND restore feature would probably still be too risky, since UDPIH requires IOSU to be functioning.

Maybe Not An Issue - unable to build recovery_menu_dc_init

Hi.

This is not a problem for me now, but I just wanted to report what I found.

In issues #18 and #19 I've uploaded my builds.

When I used the command 'docker run -it --rm -v ${PWD}:/project recoverybuilder make DC_INIT=1' the file "recovery_menu" was created.
After testing it, I can't find any difference from it and from the file generated with the command 'docker run -it --rm -v ${PWD}:/project recoverybuilder make'.
If I use the file "recovery_menu_dc_init" that is in the releases page, I notice my TV always goes to 480p (that is expected).

Am I building the "recovery_menu_dc_init" wrong?

Thanks.

Add disc drive key rewrite feature

Hello,

For total disc drive replacement when we haven't the genuine disc drive's pcb to do a physical change, it will be great if we can be able to rewrite the disc drive key in order to match it with the corresponding wii u nand key.

Great Day.
Sincerely,

Alex

Cannot build with docker

i tried to run the commands provided in the readme and they didn't work, i have docker installed, and i cloned the repo but when i try to build it i get
Screenshot 2023-04-05 at 3 29 25 PM

New feature Write Nand backup

Hello @GaryOderNichts ,
If it's possible it will be great to add those functions :

  • nand dumping (SLC / SLCCMPT / MLC) with the possibility to chose which part we want dump.
  • nand rewriting (OTP / SEEPROM / SLC / SLCCMPT / MLC) from a backup and avoid to do it via hardmod.
    With the possibility to chose which part we want to rewrite like nand dumping (OTP / SEEPROM / SLC / SLCCMPT / MLC).

Pairing gamepad with no display

It was a challenge trying to pair the gamepad when you get no screen output. You cannot see which numbers to type. It seems the pin is generated from the MAC address so as long as you don't change your wifi module in the console, it should stay the same so make a note when you have a working Wii U.

The following snippet of code added in the option_pairDRC function will turn off the led, and then wait 3 seconds Then for each of the 4 numbers in the pincode, the red led will flash for 1/2 second with a 3 second pause between each number If you get a 6 second gap between numbers, then you know that number is a 0.

Example

BLANK....FLASH FLASH / PAUSE / FLASH / PAUSE / PAUSE / FLASH FLASH FLASH 

Would be read as 2, 1, 0, 3.

0 = spade
1 = heart
2 = diamond
3 = club

So on your gamepad you'd press diamond, heart, spade, club.

Insert the following code after the "static const char symbol_names" code block.

    setNotificationLED(NOTIF_LED_OFF);

    for (int i = 0; i < 4; i++) {
        usleep(3*1000*1000);
        for (int j = 1; j < pincode[i]+1; j++ ) {
            setNotificationLED(NOTIF_LED_RED);
            usleep(1000*500);
            setNotificationLED(NOTIF_LED_OFF);
            usleep(1000*500);
        }
    }
    setNotificationLED(NOTIF_LED_BLUE|NOTIF_LED_RED);

The recovery_menu cannot be loaded by using Pico

Hey, man. Thanks for your great job!

I follow your instructions and youtube video to unbrick my WiiU by using Pico, but nothing happen. The recovery_menu cannot be loaded.

Did I miss something by using Pico?

Add vWii Decaffeinator

For some special consoles, The system version is 5.3.2 and they get the 162-3006 error while updating.
This results in the inability to hack and the inability to use Decaffeinator.
So is it possible to add the vWii Decaffeinator feature to the recovery_menu.

Exploit not working

Hello, i saw this recovery menu a few days ago and since i had a second hand bought wii u locked with nnid screen and parental password, i decided to buy a rasp pico and a micro sd, i did everything fine, the pico was flashed and my micro sd works and has the file in it, the pico was plugged in the right place. The problem is that i when i do it perfectly the screen goes black, it doesnt work and the wii u turns off, the gamepad also deconnect, i cant manage to load the recovery menu, i checked every issues but no one was talking about this problem, it might my micro sd since i downloaded the file on an android and android creates android file that isnt removable. Please help me, it seems to come from there but i have no idea, i also started coldboot but nothing, i hope you read this and help me.

Coldboot Title: Add DEVMENU, System Config Tool, Kiosk Menu

On development hardware, it would be useful to add DEVMENU, System Config Tool, and Kiosk Menu as possible coldboot titles.

DEVMENU: 00050010-1F7001FF
System Config Tool: 00050010-1F700500
Kiosk Menu: 00050010-1FA81000

Although the system will refuse to set a coldboot title if the title isn't installed, it might be worth checking the console type and not showing these titles on retail systems. (show if consoleType != 1)

Sidenote: DEVMENU in SDK 2.04.02 had a different title ID. There's no point in adding that one here because the really old DEVMENU lacks a ton of functionality.

TV out support for the recovery menu?

Hello, and first off, thank you for this development. I've had a WiiU that was stupidly factory reset with CBHC and hope to finally be able to recover it.

I'm attempting to load the recovery menu and it appears to be booting, however I don't see it on the TV screen. Based on the videos I've seen of its use, it appears it only supports video out through the gamepad which is no longer paired to the WiiU.

Is it possible to add TV/HDMI support for the recovery menu?

No signal and black screen on the TV

Hello, I'm currently trying to fix my CBHC Bricked Wii U, I bought everything I was missing (a raspberry pico and a USB SD card reader) but when I plug the pico into the Wii U I just have no signal so I tried the "dc_init" one and same problem. Tried another TV and same problem.

Before doing this issue I looked if someone had the same problem and it was almost the same ( #3 ). I tried the version that was uploaded and I got a black screen, nothing at all, so I thought that was fine and I just had to press the buttons blindly but nothing, like the menu hadn't started.

I double checked if everything was good and it was. My sd card was formatted in FAT32 (with 32k allocation unit size). The file was in the root of the sd card, the pico was correctly flashed.

(also, my gamepad is not synchronized with the console in case if thats the problem...)

I don't know where I screwed up so I'm asking for help here...

Thanks

"MCP_SetSysProdSettings() failed: ffffffff" when trying to fix region.

A little backstory here: Some years ago I acquired a WiiU console that someone clearly tampered with in some way: It's an US console, but trying to launch any application on it (including built-in ones like the System Settings or the Internet browser) results in an error message that the game region is incorrect. Since I had no idea how to fix this I just put it into storage at the time.

Fast-forward a few years, https://github.com/GaryOderNichts/udpih released, which gave me some hope of fixing this console. And, indeed, I can boot into this recovery menu using udpih, and there's even an option for the exact issue I'm facing! Selecting the Debug System Region option shows:

System region code: USA
Game region code:   --- --- EUR --- --- ---

Installed Wii U Menu: USA
The game region does not match the installed Wii U Menu.

Repair the system by setting the region code to USA?

Confirming the repair, however, only results in an error code, and the console behavior remains unchanged:

MCP_SetSysProdSettings() failed: ffffffff

Any idea what's going on here? Anything else I can try?

Add video mode changer

I have a Wii U that has a possible video mode issue that I'd like to test out some more before resorting to changing out the HDMI chip. However, to do this requires me to be able to boot the system, which I currently can't do. I can get into the recovery menu (as seen by the purple light on the front) and dump logs by blindly poking at the buttons (so some part of the system is clearly working), but I don't have a way to force a switch to composite or component output. Would this be possible as an addition to the menu?

MCP_setsysprobsettings() failed: fffbffee when trying to fix region

Hey!

I just rebuilt the mlc on a Japanese wii u with a 64gb nand aid, now im trying to fix the region as i want it to be usa. System region code and game region code are both jpn. But when i try to switch to usa using "debug system region" option i get this error "MCP_setsysprobsettings() failed: fffbffee"

What am i doing wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.