SDUSB - The modern way to play Wii U games from SD - at full speed

Why?

Even though the Wii U has a built in SD slot, it doesn't support using it as a storage expansion to store Wii U games (unlike it's predecessor). USB pen drives are notoriously unreliable and hard drives are bulky and require extra power or a Y cable, using up multiple ports. Today big reliable SD cards have become cheap. Since a SD is needed anyway for homebrew, it would be nice to use that too as storage for games.
There have been solutions in the past like Loadiine, but this had various problems, the biggest of them performance and is not longer supported by current homebrew environments (Aroma).

SDUSB

SDUSB solves these problems. It uses a second partition on the SD card, which will be formatted to the Wii Us native file system and therefore run at full speed. The partition will show up as a USB device and can therefore be managed using the built in Data Management in the system settings. SaveMii, WUP Installers etc. all work with this, like it is a USB storage device. Also HAI (VC Wii Titles) work with SDUSB.
SDUSB does all that by patching IOSU (the OS that runs on the ARM processor). It is implemented as a stroopwafel plugin.

If you instead want to partition your USB HDD to use it for Wii U games and other stuff look here: https://gbatemp.net/threads/usb-partition-use-partitioned-usb-hdds-with-the-wii-u.656209/

Wafel Installer



As a alternative to following this manual guide, you can now use the wafel installer. It guides you through installing the prerequisites, partitioning and setting up the plugin.
If you want to follow the manual setup, skip to the next section (Prerequisites)

On unmodded console
If you haven't modded your console yet, or lost the SD or SD content, just go to https://wafel.xyz on the Wii U web browser (Internet applet) and you can launch the wafel installer directly from that website. It guides you through partitioning the SD card.
Installing Aroma is optional.
Stroopwafel and ISFShax are required (will guide you through the setup).

On Aroma
If you are already using Aroma and want to keep the homebrew setup on the SD, then you need to manually shrink the existing partition on the SD (you can use Minitool Partition Wizard for that) and then put the wafel_installer.wuhb into your wiiu/apps folder on the SD. You find the download here: https://github.com/zer00p/wafel_installer/releases

If you don't care for your existing hombrew setup, boot without the SD card in and launch the wafel installer from the the web browser on the wii u https://wafel.xyz. When it tells you no SD detected just click abort

Once in the wafel installer main menu go to SDUSB to start the setup, it guides you through everything, including reinstalling Aroma, if needed.


Prerequisites

You need two things:
  1. a way to launch minute
  2. a reliable SD card
For 1. the recommended way is to setup ISFShax, for that we have a guide here: How to set up ISFShax
If you don't want to commit to installing ISFShax yet you can skip the "Installing ISFShax" step in the ISFShax setup guide and instead run it manually through the chosen exploit on every reboot.
Instead if ISFShax you can also use defuse, in case you have that already.

For 2. It is highly recommended that you use an Endurance branded SD card from a reputable brand. Since your save games will also be saved there, you rather want to spend $5 more then to lose all your save games because your cheapo sd card died. Also be aware of fakes, even on Amazon you can get fake SD cards...
The speed of the SD card isn't too important, as the Wii U is limited to 25MB/s (same as the internal memory) anyway. Every somewhat recent SD card should be able to get that speed. Choose Reliability > Access Time > Throughput.

Setup

Partitioning the SD card​

On Windows you need to use a third party tool like Paragon Partition Manager Community Edition, Minitool Partition Wizard or Easeus, on Linux you can use gparted.
You need to have two primary partitions on the card:
  1. FAT32 - (in gparted set lba flag). This is what the PC will see and all your homebrew goes (you should already have this)
  2. NTFS - This partition will be the "USB", you use to store the Wii U games on (don't assign a drive letter)
Instead of NTFS you can also use exFAT. Shrink the existing FAT32 partition to make room and then create the primary NTFS partition after it. It's recommended to align the Partitions on 64MiB boundaries and use a multiple of 64MiB for the size. NTFS won't be the file system the Wii U will be using, it is just there to tell SDUSB which partition to use (it will pick the first NTFS one). The Wii U will later format it with it's own file system.

Installing the Plugin​

Get the latest 5sdusb.ipx from here: https://github.com/jan-hofmeier/wafel_sd_usb/releases and place it in your ios_plugins folder. That is either wiiu/ios_plugins on the SD card or /sys/hax/ios_plugins on the slc. For slc you have to rename it to something shorter like sdusb.ipx

Using SDUSB

If you now boot back up, the Partition shows up as a USB device, which needs to be formatted and can then be used as usual. After formatting the SDUSB, you can also connect an existing USB storage and copy stuff over.
sdusb.jpg

Known Problems

  • GC VC Injectes don't work when installed to the SDUSB (they still work from Internal Memory)
 
Last edited by SDIO,
I did everything correctly but now that i pluged the sd card hombrew works but format storage device doesn´t appear. Any possible solution? I have used usb flashdrives on the past for more space, dont know if it matters.
 
And when you go to the settings and start the format manually?
Yeah, when go to settings and pres format a usb device it goes infinately loading (in the wiiu).
Heres a better view of my sd (srry for the spanish)


Edit: Now it worked but I had to go through minute and then select Patch (sd) and boot IOS (slc). Is there A way to launch it with fastbooting or do I always have to go through minute? (I normaly use fastbooting)
 

Attachments

  • Captura de pantalla 2026-03-15 151332.png
    Captura de pantalla 2026-03-15 151332.png
    29.5 KB · Views: 18
Last edited by jota2,
If anyone else was looking to partition the SD card on Linux using fdisk (no GUI bloat) here’s how I did it:


1. Identify your SD card device:

Code:
$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    1     0B  0 disk 
sdb           8:16   1  29.7G  0 disk 
└─sdb1        8:17   1  29.7G  0 part 
mmcblk0     179:0    0  29.8G  0 disk 
└─mmcblk0p1 179:1    0  29.8G  0 part 
nvme0n1     259:0    0 238.5G  0 disk 
├─nvme0n1p1 259:1    0     1G  0 part  /boot
└─nvme0n1p2 259:2    0 237.5G  0 part 
  └─root    253:0    0 237.5G  0 crypt /var/lib/docker/btrfs
                                       /var/log
                                       /var/cache/pacman/pkg
                                       /home
                                       /

For me it was sdb.

MAKE SURE IT'S NOT MOUNTED ANYWHERE. THE COLUMN "MOUNTPOINTS" SHOULD BE EMPTY FOR THAT DEVICE.


2. Partition with fdisk:

Code:
sudo fdisk /dev/DEVICE

Create a new partition table:
Code:
o

Create the FAT32 partition (e.g. 1GiB):
Code:
n
p
1
+1GiB

Set its type to FAT32:
Code:
t
1
c

Mark it as bootable (unsure if this is needed):
Code:
a
1

Create the NTFS partition (rest of the space):
Code:
n
p
2
<enter>
<enter>

Set NTFS type:
Code:
t
2
7

Write changes:
Code:
w

Then format both partitions (unsure if NTFS formatting is needed):

Code:
sudo mkfs.vfat -F32 /dev/sdb1
sudo mkfs.ntfs -f /dev/sdb2


Notes:
  • Both partitions are already “primary” by default
  • Ignore Windows-specific stuff like drive letters
  • I think alignment from fdisk is already fine. The 64 MiB alignment thing seems unnecessary, worked fine for me.
 
I think it's probably more difficult to do it with USB, because the Wii U wants complete control over any USB drive it sees, but normally ignores the SD card (in Wii U mode)
The real holy grail (imo) is loading the MLC from USB via endurance MicroSD, keeping SDIO for retroarch loads and homebrew, and if using the Internal SATA, then SSD as MLC, or as an HDD storage drive for USBMLC; with the USBHide/Ustealth app to keep the Wii/GC drive on the second USB slot from being formatted.

Each device would be using its own dedicated lane, topped off with an 'I/O Priority' Aroma/Wafel plug-in, to keep speeds as fast and as consistent as possible for the end user, greatly reducing contention. I'll have the slop speak on my behalf.
https://chat.deepseek.com/share/miiksywz92khb5q38n

It would be the homebrew equivalent to the official Wii U Summer Update.
If I had to give the actualized project a name, it would be bullet or butter, like the coffee.
Screenshot_20260320_164712.jpg


Going back to the menu is still pretty slow, and judging by the plugin blueprint, this will remedy it.


A more advanced LAVD/BORE (Steam Deck) inspired plugin would be the fastest, this still won't be a full blown scheduler, as that would require having a granular understand of the syscalls; but it's a step in the right direction. I'll be learning as I mess with it and will report back when (if) I have progress.
https://chat.deepseek.com/share/xr9ppnh44apay0qbcw
 
Last edited by DolphinPussy,
Yeah, when go to settings and pres format a usb device it goes infinately loading (in the wiiu).
Heres a better view of my sd (srry for the spanish)


Edit: Now it worked but I had to go through minute and then select Patch (sd) and boot IOS (slc). Is there A way to launch it with fastbooting or do I always have to go through minute? (I normaly use fastbooting)
How can I fastboot with this IOs plugin? I have fast boot set up so it loads directly to aroma. To activate sdusb I have to cancell the fastboot and then go through minute. I think I must have to reinstall the fw.img file but I dont know how. Reinstalling the Fastboot fw.img
(isfhax fastboot)
 
It should also work with the fastboot minute. Did you actually place the fastboot minute as fw.img on the root on the SD?
You can also just configure autoboot on the full minute.
Post automatically merged:

If anyone else was looking to partition the SD card on Linux using fdisk (no GUI bloat) here’s how I did it:
The advantage of gparted is that it lets you easily shrink the existing FAT32 partition.


Create the FAT32 partition (e.g. 1GiB):
Code:
n
p
1
+1GiB
This doesn't work for me. It seems you left out the selecton of the first sector. And there you have to be careful to get a good alignment. Admittedly gparted also does a bad job at aligning the FAT32 partition. It simply aligmens the partition to 1MiB, but that will cause the data section inside the FAT32 file system to be misaligned. The offical SD formatter is much smarter about that, but it only allows 32GiB. Btw, I made this tool for checking aligments, but fsck can also show you the start of the sections: https://github.com/jan-hofmeier/mbrinfo (you have to compile it yourself, as the release is outdated)


Mark it as bootable (unsure if this is needed):
Code:
a
1
Not needed


Then format both partitions (unsure if NTFS formatting is needed):
Not needed to format the NTFS partition, only the type must be set. Also I would recommend using 0x17, so the PC doesn't even try to do anything with it.

  • I think alignment from fdisk is already fine. The 64 MiB alignment thing seems unnecessary, worked fine for me.
Alignment is not required for to work, but it will affect performance and longevity. The AUs of SD cards can be quite big. For SDHC the offical SD formatter seems to use 8MiB aligmenet for the data section.
Post automatically merged:

Each device would be using its own dedicated lane, topped off with an 'I/O Priority' Aroma/Wafel plug-in, to keep speeds as fast and as consistent as possible for the end user, greatly reducing contention.
I don't think that is much of a concern on the Wii U.
 
Last edited by SDIO,
I don't think that is much of a concern on the Wii U.
I'll have to do benchmarks and let you know, the I/O difference with the theoretical plugin may be redundant if the lanes are already made separate, but for builds using eMMC or SDUSB as boot, it might actually help to reduce hiccups caused by bottlenecks.

I will be patient for your 5satausb plugin to be finished so I can test with confidence, SATA plugin changes what the device says it is, but doesn't handle the power timing, initialization order, or proper registration with the storage system.

For now I shall keep toying with merged 5partnc IOS autoboot.
Thanks so much for all you do.
 
Last edited by DolphinPussy,
I have everything ready but the ios plugin. How can I run sdusb using fastboot mode on isfhax?
 
I made an account just to say thank you for this guide!! It worked beautifully and was just a simple extra step in the process of homebrewing my fiance's childhood Wii U today. I absolutely cannot wait to show him some of the best games for the system (New Super Mario Bros U, anyone?).

For anyone who reads the comments, be aware that I had some issues with Minitool Partition Wizard (I am on Windows 11, that's possibly relevant), but the Paragon Partition Manager worked just fine. I figured I'd put this here in case anyone else is having those "Error 12" headaches and/or can't get it to work for any other reasons.

I suspect it wasn't working properly because my laptop doesn't have an SD card reader, so I have to use a USB to SDXC dongle, and evidently that causes some hiccups with the way Windows reads my SD cards.
 
  • Like
Reactions: SDIO
I have a problem, I followed all of the tutorial but I can't see my ntfs partition of the sd card as a usb storage in the wii and the "checking USB storage device..." goes on forever.

I partitionned the sd card into a 32gb fat32 partition then an 87gb ntfs partition, I removed the letter from the ntfs partition, I copied the backup from my other sd card into the fat32 partition then I run wafel_setup_mlc.ipx to rebuild the MLC.

When I check my sd card partitions right after running wafel_setup_mlc.ipx, I see that the ntfs partition turned into a "other" in minitool partition wizard and "not formatted" in paragon partition manager. I guess that this is why SDUSB is not showing the second partition as a usb.

I tried formatting that partition again to ntfs but my wii would stay stuck on "jumping to IOS" until I run wafel_setup_mlc.ipx.
 

Site & Scene News

Popular threads in this forum