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 the SLC, as we can’t rebuild it easily. (a backup 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. [not needed if you just reinstall to the existing eMMC] 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. Check that the wafel_setup_mlc.ipx deleted itself from /wiiu/ios_plugins folder on the SD.

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

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

  11. (Optional) delete the wafel_install folder to free up space

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

Last edited by SDIO,
The MLC is limited to 64GB by IOSU. You can remove that limit with the unlimit plugin, but then your Wii U would depend on that plugin (and with that ISFShax for booting. If you don't remove the limit, then it will work completely like stock.
 
By restoring you mean rebuilding? And how did you back it up?
I haven't done anything other than move the tool to the nand and autobooting, so just theorizing atm. My MLC is backed up, minute is also in the SLC, do I need to back up anything else? I could backup the full NAND if rednand needs it.

Games on the optical SATA formatted Wii U drive will theoretically load fastest at 150mb/s, and with minimum overheard if the OS is accessed by a separate drive (nandaid/rednand).

Has this config been attempted?

I'd love to see an internal HDD vs SSD comparison, and any benchmarks between the eMMC and random read/writes from various SD card manufacturers.
Loading the Wii/Gamecube games via external USB stealth drive is also ideal to minimize compatibility issues and any annoying format nags.

You can use the sysmount option from redNAND btw so the eMMC shows up as USB storage, which is handy to use it for Wii VC.
What you could also have done would be to keep the system running from the eMMC as is but make that the SATA shows up as USB, which has the advantage that it would get the priority for installing games from the eShop and you still had the eMMC for Wii VC.
This is exactly what I want to do!
I don't mind using either only eMMC or rednand, I just want to mount the SATA as a USB drive.
What IOSU patches do I need?
Post automatically merged:

I'll be trying this too.
 

Attachments

  • IMG_20230702_021647.jpg
    IMG_20230702_021647.jpg
    69.9 KB · Views: 22
Last edited by DolphinPussy,
You font color choices make it hard to read, at least in dark mode...
while leaving a formatted eMMC dedicated for vWii compatible N64 injects or WiiWare storage
vWii doesn't use the eMMC. It has it's own dedicated slccmpt. The only exception is for Wii games bought in the eShop (not shop channel) which use HAI.

Games on the optical SATA formatted Wii U drive will theoretically load fastest at 150mb/s
I couldn't measure any real load time benefit from using sata. But maybe some games make better use of it then others.

I just want to mount the SATA as a USB drive
I started making a plugin for that, but I didn't finish it. It needs to disable the encryption or use the MLC like on SDUSB. Now it tries to use the USB key, but SATA attaches so early, that the USB Key isn't ready there.
 
  • Like
Reactions: DolphinPussy
I started making a plugin for that, but I didn't finish it. It needs to disable the encryption or use the MLC like on SDUSB. Now it tries to use the USB key, but SATA attaches so early, that the USB Key isn't ready there.
I saw, and I am very excited to see such a development. I'll do my best to help, and allow you to troubleshoot further. I'll leave the eMMC stuff alone for now, as my isfshax files are already in the SLC.

Perhaps there may exist novel ways of tackling these issues
- Take advantage of HDD SATA delay time for patches
- USB MLC "merging" the SATA into system storage during initialization, acting as one drive
- SDIO hybrid rednand, SATA mounted as MLC storage but redirected to USB for all OS functions
- USB MLC storage calls being redirected to the SATA, disabling the USB MLC for non-os data, while still showing SATA as the main system memory
- call storage functions on the MLC USB prioritizing a 1:1 SATA MLC storage over itself in Data Management
- separate filetrees managing a multi-mount SDIO config
- methods that allow more than 2 usb devices plugged in the menu
- a method similar to how spanned volumes or dynamic storage functions work
- rearranging the priority of each device as so the usb is called before SDIO

The 5sata plugin you are making is incredibly helpful for those wanting to use a 2tb internal HDD as a game only drive, and wish to get past requirements of an MLC OS boot, especially with storage prices increasing, for that sweet spot of responsiveness and budget this would certainly matter.

Wii U retroarch would really benefit from having the SDIO all to itself, as the SD read speed is about 26mb/s with SCFM disabled, the USB being 35-45 mb/s while the SATA is about 140-150mb/s (100-120 with HDD).

So that's what this is about, shaving off as much bandwidth as possible by using dedicated lanes; USB for MLC (with a sandisk endurance microsd used via adapter), SDIO for the front SD card with minimal eMMC calls, slccmpt for the occasional vWii function, internal SATA for Wii U games, and a hidden usb for GC/Wii backups in vWii.
The slop below explains it, apologies for the eyesore font.

https://chat.deepseek.com/share/010q4jxe87y5doaqkd
From what I've read the priority is SDIO > SATA > everything else.

As for game loading, that may be the anemic bandwidth and cache misses being the choke point when decompressing assets, but we can make the best with what we got, and that is by looking at the memory hiearchy the Wii U has and creating a storage hierarchy that is on par with what the console can handle.

This console is so close to being in the same league as the powermac G4, yet so far, you're doing to the Wii U what apple enthusiasts were doing to the powermac 20 years ago, and that's epic.
Thank you for your attention to this matter, and apologies once again for the font color, tacky, I know.
 
Last edited by DolphinPussy,
Okay so I did the uSATA to USB mod and it's not working!
You fixed it, but while you were having issues, where was your MLC booting from? I'm going to assume 5satausb.ipx might only work with USB as MLC due to boot priority. I'll be installing a HDD soon to verify.
I'll use wafel_disable_mlc.ipx to disable the mlc of emmc without disabling slccmpt.
 
Last edited by DolphinPussy,
As I said the 5satausb.ipx isn't ready yet. It needs the patch to fix the encryption. Else the drive would show up unformatted once you leave the settings after formatting it.
Post automatically merged:

s there a theoretical limit to how large the internal MLC sd card can be?
If you remove the IOSU limit, then you can go up to 2TB.
 
As I said the 5satausb.ipx isn't ready yet. It needs the patch to fix the encryption. Else the drive would show up unformatted once you leave the settings after formatting it.
Post automatically merged:


If you remove the IOSU limit, then you can go up to 2TB.
Is the encryption SATA specific? It reminds me of this, perhaps it requires "keys" from the optical drive to do a handshake.
https://www.retrosix.wiki/re-key-dvd-drive-xbox-360

Does optical have its own key separated from the otp.bin and common key, like the 360?
 
Last edited by DolphinPussy,
It has nothing to do with the Authentication of the ODM. I am talking about the WFS encryption. It tries to use the USB for that if the type gets changes to USB. But the USB key isn't ready that early.
You would need to change the wfs encryption key to the MLC on that device. I have code for that in SDUSB.
 
  • Like
Reactions: DolphinPussy
But the USB key isn't ready that early.
You would need to change the wfs encryption key to the MLC on that device.
SDUSB shares encryption keys "on time" with the MLC, do I have this right? So SATA needs to do the same, but the timing of USB function leads to problems when formatting it in the Wii U console.

4nocrypt.ipx seems to be designed only for the physical ports on the back, but I can try stacking it anyways, as it comes before 5satausb.ipx
If the SATA itself still attempts encryption, merging those two plugins into one would be an ideal hotfix.

Would being manually configured by wfs-reencryptor be a good workaround to the problem? I'm not swapping consoles so title keys shouldn't be a problem.

https://github.com/koolkdev/wfs-tools
I shall be patient for a breakthrough if not, but I'm willing to wait hours through it for the small possibility of compatibility.
Post automatically merged:

Okay so I did the uSATA to USB mod and it's not working!
You might need to have the 4nocrypt.ipx already in your plugins when you're rebuilding the MLC, as that might be the only way to be able to use the SATA drive as USB storage.
https://chat.deepseek.com/share/308ob75akll7dol84v
Might be total hearsay from me tho, that depends if @SDIO programmed it this way.
 
Last edited by DolphinPussy,
if you still cannot install, try connect the cables tha you solder, and do a britch to the other site of the data line, like
this:
View attachment 470564
if your wires are ok, you game disk reader shoot read wiiu disk, and wii disk with no problem,
if not, or error sayn "your disk drive is bad, call nintendo suport bla bla bla", then your cables are bad, or reverce polarity

* i recoment desolder the fuses of the sata port (not the caps, my wiiu do not have one because is 30 model), so you can have better contact
EXAMPLE:
View attachment 470565

How much of this is necessary with a pre-built usata board?
+5V, +12V and GND?
Data soldering isn't needed due to the ribbon connection, or am I wrong?
 
Hi, so I rebuilt the MLC using the MLC2SD interposer, thank you! Everything went correctly with my beginner solder skills.

Now how do I get back into Aroma? Do I have to install everything again? I'm using the same front slot SD as before.
 
The Aroma files are in the SD card. I did Autoboot from the ISFShax guide, I put the 5payldr.ipx in the ios_plugins folder and copied the haxcopy files to the SD card, still nothing. Nothing happens when I press X while booting nor when I open Health & Safety
 
I did that and nothing worked, I had to install Aroma from scratch and now everything is working! Thanks! Is there a way to get back the games that were preinstalled when it was new or do I have to get them through *other* methods now? On the eShop I can only download what I bought
 
The eShop should allow you to redownload games that were prenstalled on the console. Same as games you purchased there.
 
  • Like
Reactions: Hazmu
А что, если индикатор будет только мигать фиолетовым цветом и больше ничего? I was trying to install a Russian language pack on a Japanese Wii U using Filezilla, and I overwrote the files in the Storage_mlc folder. And when I accidentally redownloaded all the files, my console won't move past the Wii U loading screen. I followed this guide, but the lights aren't flashing, and after half an hour, nothing happens, and the log doesn't appear on the SD card. How can I fix this?
 

Site & Scene News

Popular threads in this forum