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/

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 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)
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 wafel_sd_usb.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 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,

chrisis685

Member
Newcomer
Joined
May 20, 2024
Messages
6
Trophies
0
XP
23
Country
Austria
I've ordered a 512GB SD card. Having everything packed inside the WiiU SD card is perfect.
May I ask please: did anyone notice any speed improvement over USB? is it slightly faster? or the same? or a bit slower?

Thanks
From my limited testing it seems about the same (though I had a really old 256 GB external USB HDD attached before...).
Only problem so far for me are GC VC injects which I can't get to work...
 
  • Like
Reactions: Blythe93 and depaul

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
That is everything except Gamecube injects work (I made them with UWUVCI but I doubt that makes much difference, but I'd like to use the injects as it's the only way for gamepad support). For some reason Nintendont doesn't find the boot.dol (there's a short error message then the WiiU reboots back to the main menu) even though I have everything in the right place (under SD:/apps/nintendont), and it technically should work as I copied everything over from the old SD. Also if I go back to the old SD + HDD attached the injects work fine again.
This might be broken, I never tried GC injects with that and not 100% sure how they work, but from what you tell I might have an Idea what could be causing the problem: Since HAI IOS is redirected to use the SD instead of the MLC (yes IOSU is patched to tell HAI IOS to look on the MLC Intead of USB and then HAI OS is patched to use the SD instead of the MLC, because the MLC is much more similar to the SD than USB from a HAI IOS perspective). But HAI IOS knows it is using the SD for the Disc Drive Emulation, so it might use the SD card exclusive for that, not allowing other access. If now Nintendon't needs to load files from SD, it might not get access to that. I don't have a solution for that and no good Idea how I would even fix that. That would need much more complex HAI IOS patching, which we can't do right now...
If everything could be packed into the emulated disc drive it might work, but I don't see how the Memory Card emulation would work for that. The memory card would then be needed to be emulated on the vWii NAND or real USB
 

chrisis685

Member
Newcomer
Joined
May 20, 2024
Messages
6
Trophies
0
XP
23
Country
Austria
Thank for your quick reply, makes sense as far as I understand it:) Guess I'm out of luck, luckily GC games still work just fine in Nintendont from my second attached USB device, only a bit of a shame I'm unable to use the gamepad with that (from what I figure there is no other way to use the gamepad than using injects...)
 
  • Like
Reactions: Blythe93 and depaul

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
I've ordered a 512GB SD card. Having everything packed inside the WiiU SD card is perfect.
May I ask please: did anyone notice any speed improvement over USB? is it slightly faster? or the same? or a bit slower?

Thanks
It should be perform the same as the Internal Memory, maybe a tiny bit fast, but not much (except writing large files, that is much faster than Internal).
If you have a USB HDD, it might be faster for sequential access (Since USB2.0 is theoretically faster then the SD interface on the Wii U), but the SD card should have lower access times compared to an HDD, since the SD is flash and the HDD a HDD.
A USB SSD could be the fastest overall.
Post automatically merged:

Thank for your quick reply, makes sense as far as I understand it:) Guess I'm out of luck, luckily GC games still work just fine in Nintendont from my second attached USB device, only a bit of a shame I'm unable to use the gamepad with that (from what I figure there is no other way to use the gamepad than using injects...)
You could put the GC injects on the Internal Memory, that should work
 

depaul

Well-Known Member
Member
Joined
May 21, 2014
Messages
1,310
Trophies
1
XP
3,033
Country
France
That works indeed, for some reason I thought I tried it before and it didn't work but now it actually does :)
Hi. Did you try to launch Nintendont and load gamecube isos from SD card FAT32 partition? Without converting them to injectable format.
They're copied into "game" directory. They work with gamepad too.
 

chrisis685

Member
Newcomer
Joined
May 20, 2024
Messages
6
Trophies
0
XP
23
Country
Austria
Hi. Did you try to launch Nintendont and load gamecube isos from SD card FAT32 partition? Without converting them to injectable format.
They're copied into "game" directory. They work with gamepad too.
I haven't tried that, made these injects some time ago and they always worked... need to leave the house soon so I might try this an other time though :)
 
  • Like
Reactions: depaul

depaul

Well-Known Member
Member
Joined
May 21, 2014
Messages
1,310
Trophies
1
XP
3,033
Country
France
I haven't tried that, made these injects some time ago and they always worked... need to leave the house soon so I might try this an other time though :)
I load my Gamecube games this way. I open Nintendont and it prompts you to load your game ISOs either from FAT32 USB or internal SD card.

The path should look like this :
SD:\games\Sonic_Adventure_2\game.iso (yes the actual game file should be called "game.iso").

They work flawlessly with gamepad.
 

chrisis685

Member
Newcomer
Joined
May 20, 2024
Messages
6
Trophies
0
XP
23
Country
Austria
I load my Gamecube games this way. I open Nintendont and it prompts you to load your game ISOs either from FAT32 USB or internal SD card.

The path should look like this :
SD:\games\Sonic_Adventure_2\game.iso (yes the actual game file should be called "game.iso").

They work flawlessly with gamepad.
Yeah I know the Nintendont format, been using it forever on my second USB HDD (technically an SSD with SATA to USB adapter :) Do you have a Nintendont forwarder on WiiU menu for the gamepad to work with GC games on SD though? If so, which forwarder are you using?

Also sorry, this is getting slightly offtopic as it doesn't have much to do with SDUSB...
 
  • Like
Reactions: depaul

depaul

Well-Known Member
Member
Joined
May 21, 2014
Messages
1,310
Trophies
1
XP
3,033
Country
France
Yeah I know the Nintendont format, been using it forever on my second USB HDD (technically an SSD with SATA to USB adapter :) Do you have a Nintendont forwarder on WiiU menu for the gamepad to work with GC games on SD though? If so, which forwarder are you using?

Also sorry, this is getting slightly offtopic as it doesn't have much to do with SDUSB...
Good luck!
https://github.com/Special-Niewbie/Nintendont-CrisMMMod/releases
use this forwarder: Nintendont-CrisMMMod.ver.7.30.0005000248058BE1.zip
 

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
Warning Experimental
Could someone with a FAT32 formatted HDD and ISFShax SLC setup test the attachted wafel_usb_partition.ipx?
The first partition gets mounted as SD card to the Wii U, if a NTFS partition exist, that wiull be mounted as USB (wfs) storage.
In my tests with a USB stick and in that case it was even inited early enough so I could coldboot aroma from it with the payloader plugin. Since a HDD takes longer to spin up, it would be interested if that still works for cold booting aroma.
If both a sdcard and a FAT32 partition is present the SD wil be /dev/sdcard01 and the USB FAT32 will be /dev/sdcard02. For some reason Aroma still uses the USB one.
 

Attachments

  • wafel_usb_partition_fat32.ipx.zip
    3.6 KB · Views: 3

Blythe93

The Treasure Tracker
Member
Joined
Oct 19, 2022
Messages
972
Trophies
1
XP
2,323
Country
Serbia, Republic of
Warning Experimental
Could someone with a FAT32 formatted HDD and ISFShax SLC setup test the attachted wafel_usb_partition.ipx?
The first partition gets mounted as SD card to the Wii U, if a NTFS partition exist, that wiull be mounted as USB (wfs) storage.
In my tests with a USB stick and in that case it was even inited early enough so I could coldboot aroma from it with the payloader plugin. Since a HDD takes longer to spin up, it would be interested if that still works for cold booting aroma.
If both a sdcard and a FAT32 partition is present the SD wil be /dev/sdcard01 and the USB FAT32 will be /dev/sdcard02. For some reason Aroma still uses the USB one.
I'll give it a try tomorrow. Unfortunately, I don't have any spare SATA drive to test with, only the old Samsung SP0401N 40GB PATA drive. Will that one do?
My spare Wii U's SD card now has two partitions, FAT32 and Wii U one. Should I use a different card with only one FAT32 partition for this test?
 
  • Like
Reactions: depaul

Blythe93

The Treasure Tracker
Member
Joined
Oct 19, 2022
Messages
972
Trophies
1
XP
2,323
Country
Serbia, Republic of
You would test it without plugins, loading minute and the ios_plugins from SLC
I have a few more questions:
  1. Should I put the wafel_usb_partition_fat32.ipx on SLC as well? Rename it to e.g. usbpart32.ipx?
  2. Should I boot without the SD card during test?
  3. Do I need to add anything onto the FAT32 formatted HDD before I connect it to the Wii U and power on the console?
Currently all my plugins are loaded from SLC and I have only those that were mentioned in the ISFShax and SDUSB guides, nothing else. I've removed the ones that were on SD card after I've moved them onto the SLC as it was mentioned in those guides that it's fine to remove them.
 
  • Like
Reactions: depaul

buddy

Well-Known Member
Newcomer
Joined
Jun 25, 2007
Messages
77
Trophies
1
XP
182
Country
United States
Tried this tonight with an old My Passport WDBAAA5000ABK-02 500GB HD. Formatted it in half with 1st Primary Fat32, 2nd Primary NTFS. Copied the fat32.ipx to the slc/sys/hax/ios_plugins folder, copied selective content of SD to Fat32 partition of HD including all associated Aroma files/folders/apps. Shut down, removed SD card, plugged in USB and started. Upon launch, was asked to format the drive (NTFS partition), which I did, then forced to reboot. Upon next launch everything loaded as normal, all the folders I have under Aroma were there, all Aroma based apps I tried working fine - didn't run through every single thing I had, but didn't see any issues - all seemed to be normal.
 

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany

peilezhang

Member
Newcomer
Joined
Aug 8, 2023
Messages
15
Trophies
0
Age
50
XP
244
Country
China
Warning Experimental
Could someone with a FAT32 formatted HDD and ISFShax SLC setup test the attachted wafel_usb_partition.ipx?
The first partition gets mounted as SD card to the Wii U, if a NTFS partition exist, that wiull be mounted as USB (wfs) storage.
In my tests with a USB stick and in that case it was even inited early enough so I could coldboot aroma from it with the payloader plugin. Since a HDD takes longer to spin up, it would be interested if that still works for cold booting aroma.
If both a sdcard and a FAT32 partition is present the SD wil be /dev/sdcard01 and the USB FAT32 will be /dev/sdcard02. For some reason Aroma still uses the USB one.
Wow, another useful plug-in. I have tested most of the functions and they all work fine. I have a few suggestions:
1. Is it possible to move "minute.ini" to slc so that we can completely get rid of the sd card?
2. I tested the wii vc program, some emulators as the fceugx, It seems that it cannot recognize the virtual sd card and tries to find rom, configuration, etc. in the real sd card.
These are not big problems, thank you again for creating these fun things and making the WiiU scene last forever!

EDIT:
another question:
Aroma's second menu seems to respond very slowly when the USB device only has a FAT32 partition. When I re-divided the USB device into two partitions (one fat32 and one ntfs), it became normal.
 
Last edited by peilezhang,

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,422
Trophies
0
Age
28
XP
1,692
Country
Germany
What do you mean with Aromas second menu?
Also the vWii isn't affected by this. But I think most Wii homebrew already has USB support? Not sure.
The only potential problem I could see if you run a Wii VC homebrew injects from the WFS partition and that tires to use the FAT32 partition
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @MysticStarlight, Luckily, he survived.