Tutorial  Updated

How To: Upgrading / Rebuilding Wii U Internal Memory (MLC)

Warning


This tutorial is only for advanced users and has a serious risk of bricking the console. Make sure you read it completely before executing any step and that you understand every step and its implications. With de_Fuse everything should be unbrickable if you know how.

You should at least have a backup of SLC and SLCCMPT, as we can’t rebuild them at the moment. (can be done in minute_minute, so there is no excuse). We had two cases where the SLC corrupted for an unknown reason, so a backup is essential.

What is this for?


This tutorial goes into rebuilding the MLC from scratch on a clean media. This can become useful, if
  • the MLC (eMMC) chip died or corrupted the filesystem
  • the SCFM (SLC cache for MLC) became inconsistent
  • you want to upgrade the capacity of the internal storage.
  • you want to set up a redNAND without SCFM
If you have a bad eMMC chip, but the recovery still works (which is most likely), then there are also ways to fix it without a complete reformat.
If the LED is blinking blue, you have a SLC problem and not a MLC problem, so this tutorial won't help with that.

It will format your MLC, so all data on the internal Wii U memory will be lost.

Update


13.03.2024 - The wafel_setup_mlc.ipx now uses a built in IOSU function to create system folders, that should make sure the permissions are right, which caused problems with game updates in the past. It will also recreate the update folder (so system updates won't be blocked by that)

Prerequisites


Backing up save games



Do a backup of what you want to preserve, like savegames and Miis.
For Backing up Save games, it is recommended to use SaveMii. That requires that you have Tiramisu or Aroma running.
You can also move your savgames (or whole games) to USB, which should still be readable. When recreating the users after the rebuild, you just have to be carefull to create the users in the right order, to make the ID’s match. A backup by other means (Like savemii) is still recommended.
If you are using this tutorial to fix a failing eMMC you might not be able to use the other Backup options. In that case use the Dump MLC option in the Recovery. You can extract your data from there using wfs-extract.

Storage Options


The Wii U has two ways of connecting internal memory, each with its own drawbacks:
  • SDIO – On retail consoles the internal memory is a eMMC chip connected through an internal SDIO bus to the Latte chip. This SDIO bus can also use SD cards (hence the name SD IO). Access to media connected on the SDIO is cached through a file on the SLC, presumably to reduce writes on the MLC. This cache is called SCFM and it is the reason why you always need to backup / restore SLC and MLC together and doesn’t allow easy swapping of multiple SDs.
    IOSU also only supports 3 sizes of media on this bus: <=8GB, 32GB and 64GB. The size will be limited to the biggest it fits, the rest is unusable. This bus is limited to 26MB/s (4bit@52Mhz). For replacing the eMMC with an micro SD you can use MLC2SD or a similar Interposer. Soldering and micro SD adapter using wires, works too.
    It is recommended to use a 64GB Sandisk Max Endurance card (But similar card should also be fine), since the Wii U is known for writing much.

  • SATA – The Disc drive is connected through SATA, the connectors are different but the electrical signals are still the same. Some Kiosk consoles used this Interface to connect to a HDD. The type of the SATA device can be configured in the SEEPROM, so we can configure our retail consoles to also use a SATA HDD / SSD.
    NOTE: @QuarkTheAwesome is building an SATA adapter for that purpose, available soon™.

    The advantage of using this interface is, that the size isn’t limited (well WFS is limited to 2TB) and it doesn’t use SCFM, which makes some things easier and improves performance in some circumstances. The obvious disadvantage is that you can’t use your disc drive anymore. Without the Disc Drive vWii System Menu doesn't work. vWii Injectes / Wii VC from the eShop can still be used, but only when installed to USB. Also you still might need to disable the MLC on the SDIO bus, or else the wii u might still use the SDIO one if the SATA device takes too long to init.

  • redNAND – redirects the read / writes to one or more of the internal storage devices to paritions on the SD card. You can create an arbitrary size MLC partition on the SD card and set it up using this tutorial. SCFM can be easily disabled for the redNAND. The 64GB limit does not exist for redNAND if the SCFM is disabled. For redNAND we have a dedicated Tutorial here: https://gbatemp.net/threads/fixing-...-soldering-using-rednand-with-isfshax.642268/

Does that mean we can’t get more than 64GB on the SDIO bus? No, BUT it requires ISFShax / defuse to boot the console every time. @GaryOderNichts created a patch to remove the limits and always use the maximum size of the SDIO media and it also disables SCFM, because SCFM doesn’t work with more than 64GB and disabling SCFM improves performance and reduces wear on the SLC, at the cost of increasing wear of the MLC media. I packaged this patch in wafel_unlimit_mlc.

Rebuilding the MLC


Now that you decided what media you want to use as MLC, we can start with the actual process:
  1. Download all the mlc system titles for your region from NUS. This can be done conveniently with MLCRestorerDownloader by @Xpl0itU. Copy the otp.bin from the SD to the folder with the MLCRestorer Downloader so it can get the common key from there.

    You will get the output/MLC/{region} directory, which then contains a directory for each title. In total there should be 52 titles totaling ~1.1GiB.

    If your console has an old firmware it might also be necessary to get the latest SLC titles.

  2. On the root of your SD card (the one that will go in the front slot, not the MLC replacement) create a folder wafel_install. Then copy all 52 titles to the wafel_install folder, so it now contains the 52 subfolders, one for each title. If you want to reinstall / update SLC titles, you would also put them there.

  3. Attach your MLC media of choice. (If you are using SATA got to Backup and Restore, then at Set SATA Device in SEEPROM select GEN2-HDD (Kiosk CAT-I with HDD)).
    For installing MLC2SD look here: https://gbatemp.net/threads/using-n...emmc-fix-160-0103-system-memory-error.636361/ at the Soldering section.

  4. If you install to eMMC / MLC2SD, got to Backup and Restore and select Erase MLC and Delete scfm.img. If the Erase MLC fails, you can ignore that if it wasn't formatted as MLC before (from a failed install or so).

  5. Put the wafel_setup_mlc.ipx on the SD card in /wiiu/ios_plugins. If you want more than 64GB on SDIO you also need to put the wafel_unlimit_mlc.ipx there. If you install with wafel_unlimit_mlc.ipx, it will be permanently required and therefore also permanently requires ISFShax or defuse.

  6. [Optional, only when using defuse] Open the serial monitor on the PC (Putty / minicom) for defuse to see the setup progress. There will be no display output in the Wii U itself. I attached the whole serial log of a successfull install as a reference.

  7. Select Patch (sd) and boot IOS (slc) in minute to start the setup of your fresh MLC.During the setup you won't see anything on the screen. You have to go by the power led.
    The power LED will flash blue, while it is installing the titles.
    if something goes wrong the LED will turn orange, but it will continue as long as it is blinking.
    The LED will become static once it finished. You can now power off the console.
    If the led is blinking red, something fatal happend. Ask for help.
    During the setup a short log gets written to the SD: wafel_setup_mlc.log.
    In the end it will enable the initial setup on the next boot.

  8. Remove the wafel_setup_mlc.ipx from /wiiu/ios_plugins on the SD.

  9. Boot the console. Patch (sd) and boot IOS (slc)

  10. If everything worked, the initial setup should launch.

ISFShax only: Finalizing


If you are using the wafel_unlimit_mlc.ipx you need to keep ISFShax installed. If you haven't done already complete the "Booting without SD" step form the ISFShax tutorial but also add the wafel_unlimit_mlc.ipx renamed to 9unlimit.ipx to the /storage_slc/sys/hax/ios_plugins directory.
If you are not using the wafel_unlimit_mlc.ipx you can either uninstall ISFShax or keep it as a brick protection. If you keep it complete the "Booting without SD" step form the ISFShax tutorial.
The Wii U should now boot automatically if you don't have an SD in.
You probably also want to enable the autobooting now.

See Also


https://gbatemp.net/threads/wii-u-internal-storage-upgrades-are-possible.635629/

Pictures


512 GB SD card:
img_20230702_021647-jpg.381270


@QuarkTheAwesome 120 GB SSD:
img_2709-jpg.381271


Thanks


 

Attachments

  • serial-log.txt
    87.6 KB · Views: 58
Last edited by SDIO,

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
Here is the list:

Code:
bad HMAC for "/sys/logs/12.log"
bad HMAC for "/sys/logs/14.log"
bad HMAC for "/sys/logs/15.dsc"
bad HMAC for "/sys/logs/26.dsc"
bad HMAC for "/sys/logs/42.log"
bad HMAC for "/sys/logs/42.dsc"
bad HMAC for "/sys/logs/44.log"
bad HMAC for "/sys/logs/44.dsc"
bad HMAC for "/sys/logs/45.log"
bad HMAC for "/sys/logs/45.dsc"
bad HMAC for "/sys/logs/56.dsc"
bad HMAC for "/sys/logs/64.log"
bad HMAC for "/sys/logs/65.log"
bad HMAC for "/sys/logs/88.dsc"
bad HMAC for "/sys/logs/89.log"
bad HMAC for "/sys/logs/89.dsc"
bad HMAC for "/sys/logs/99.log"
bad HMAC for "/sys/rights/ticket/sys/0000/0000000b.tik"
bad HMAC for "/sys/rights/ticket/apps/0008/00000004.tik"
bad HMAC for "/sys/rights/ticket/apps/000b/00000001.tik"
bad HMAC for "/sys/title/00050010/10004000/code/c2w.img"
bad HMAC for "/sys/title/00050010/100040ff/code/avm.rpl"
bad HMAC for "/sys/title/00050010/100040ff/code/coreinit.rpl"
bad HMAC for "/sys/security/versions.bin"
bad HMAC for "/sys/config/rtc.xml"
bad HMAC for "/sys/config/eco.xml"
bad HMAC for "/sys/proc/prefs/ums.xml"
bad HMAC for "/sys/proc/prefs/DRCCfg.xml"
bad HMAC for "/sys/proc/prefs/hdmiEDID.xml"
you are awesome, thank you. so i have to delete them 1 file at a time correct?
 

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
2,682
Trophies
1
Age
36
XP
5,664
Country
Germany
I would highly suggest to reinstall all system titles after deleting the tickets... Esp. after /sys/rights/ticket/sys/0000/0000000b.tik ^^

//EDIT: Also there are other important system files on that list, so yea, reinstalling system titles after deleting the files sounds important to me.
 
  • Like
Reactions: Tuner357

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
and before you reboot set initial launch to 255 in the recovery, in the hope that it will recreate the xmls
Post automatically merged:

I would highly suggest to reinstall all system titles after deleting the tickets... Esp. after /sys/rights/ticket/sys/0000/0000000b.tik ^^

//EDIT: Also there are other important system files on that list, so yea, reinstalling system titles after deleting the files sounds important to me.
I guess thats the ticket from the title, that failed to install. And the file was broken anyway, so deletng it should not make things worse, but we will see
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
and before you reboot set initial launch to 255 in the recovery, in the hope that it will recreate the xmls
Post automatically merged:


I guess thats the ticket from the title, that failed to install. And the file was broken anyway, so deletng it should not make things worse, but we will see
Alright, everything is deleted. i have not turned anything off yet, Is there a command i need to do to shut down wupserver on my comp properly?

Also sorry, not to sure how to set initial launch to 255. could you help me out? after that do i restart, turn off get into recovery and dump slc.raw again?

Are you wanting me to install the titles again? thats the second time that title failed to install, so not to sure what going on with that. If you want me to install titles again, can i do that through recovery?
 

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
Try the flush_slc() command.
After that stop the wupserver on the the console. Back in the menu you can select a SetInitialLaunch option. Use that.
After that use the shutdown option
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
Try the flush_slc() command.
After that stop the wupserver on the the console. Back in the menu you can select a SetInitialLaunch option. Use that.
After that use the shutdown option
this is what it sputs out when i use that. doesnt seem like i typed it in correct maybe?
Code:
>>> flush_slc()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'flush_slc' is not defined. Did you mean: 'flush_mlc'?
 
Last edited by Tuner357,

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
Ok then this wupclient doesn't have this function, so skip that. If you use the shutdown later it should be fine
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
Ok then this wupclient doesn't have this function, so skip that. If you use the shutdown later it should be fine
Okay so leave it, stop wupserver on console, change initial boot and then shutdown? Sorry for making you repeat yourself, I just want to make sure I don't mess anything up lol
 

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
oh you have my fork. I added it to my fork, but gary didn't merge it yet.
Then lets just see what happens without that. Just shutdown and then try to boot again
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
oh you have my fork. I added it to my fork, but gary didn't merge it yet.
Then lets just see what happens without that. Just shutdown and then try to boot again
Booted right into the settings!

Edit: game pad is not working though, probably because it's a jap unit

Edit 2: I have not changed the sys_prob.xml yet after reinstalling the titles and restoring slc. is this the point where it updates and replaces needed files etc?
 

Attachments

  • 20230823_161554.jpg
    20230823_161554.jpg
    1.4 MB · Views: 28

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
you can pair the gamepad in the recovery.
I would suggest you now try to reinstall that one title that failed, and also 0005001010004000 and 00050010/100040ff.
You can use my fork of the recovery to install multiple titles at once: https://github.com/jan-hofmeier/recovery_menu/releases/tag/v0.5.0-2
Since it is booting to the system settings do a factory reset from there then.
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
you can pair the gamepad in the recovery.
I would suggest you now try to reinstall that one title that failed, and also 0005001010004000 and 00050010/100040ff.
You can use my fork of the recovery to install multiple titles at once: https://github.com/jan-hofmeier/recovery_menu/releases/tag/v0.5.0-2
Since it is booting to the system settings do a factory reset from there then.
Okay.

1. Turn system off
2. Get your version of recovery
3. Boot into recovery and Install those 2 titles
4. Turn on and factory reset?

So I won't be needing to change anything in the sys_prod.xml? Or not yet
 

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
yes, but it were 3 titles the two I mentioned, because they had broken files and there was another, which failed to install before.

EDIT: if you do the regon change you robably also have to change the sys_prod.xml
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
yes, but it were 3 titles the two I mentioned, because they had broken files and there was another, which failed to install before.

EDIT: if you do the regon change you robably also have to change the sys_prod.xml
okay will do once i get back into recovery!

each title in there own folder under install?
 

Attachments

  • Screenshot (42).png
    Screenshot (42).png
    93.9 KB · Views: 26

Lazr1026

Well-Known Member
Member
Joined
Oct 30, 2020
Messages
148
Trophies
0
Age
17
XP
757
Country
United States
@Tuner357 use this minute_minute. it has slc block/page checking which you can find at Backup and Restore -> Test SLC and Restore SLC.RAW.
Post automatically merged:

@Ysecond you need to build stroopwafel with DISABLE_DISK_DRIVE set to 0 in config.h.
 

Attachments

  • fw.img.zip
    169.8 KB · Views: 20

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
each title in there own folder under install?
Exactly.

You can then use the minute @Lazr1026 uploaded to test your SLC for bad blocks. First do a fresh backup (make sure you have the old one copied somewhere else or renamed first) and then use the test and restore option. It will check if each page can be programmed and erased and will tell at the end how many pages and blocks failed the test. That will give us an idea of the shape your chip is in.
 

Tuner357

Well-Known Member
Newcomer
Joined
Aug 10, 2023
Messages
95
Trophies
0
Age
31
XP
188
Country
Canada
Exactly.

You can then use the minute @Lazr1026 uploaded to test your SLC for bad blocks. First do a fresh backup (make sure you have the old one copied somewhere else or renamed first) and then use the test and restore option. It will check if each page can be programmed and erased and will tell at the end how many pages and blocks failed the test. That will give us an idea of the shape your chip is in.

Okay it seems like we have Resurrected this thing lol. So you want me to now set it up, factory reset it, set it up again and then use the minute @Lazr1026 was saying?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    BigOnYa @ BigOnYa: I played the intro to far cry 5, that is like some crazy Jim Jones cult shit. Still its petty...