2 drive enclosure?

np247

Member
OP
Newcomer
Joined
Sep 19, 2010
Messages
9
Trophies
0
XP
31
Country
Canada
Good evening,

I recently inherited a new Wii U because of the "eShop closing" and it becoming "useless". I figured this time around I'd try to do things a bit prettier than my existing ugly setup, but wanted a sanity check first and foremost.

I know for Wii U I need (1) drive, and for vWii/GC/whatever I need (1) additional drive. I know in the past, very specific ports were required, as were power to the drives.

Apparently (2) drive enclosures exist (with dip switches to select operational mode -- 1 of which, is for the enclosure to present both drives independently). If I were to use this setting, and connect the (1) USB cable to the Wii U -- would this work?

For context -- this is the exact unit I happened to be looking at: https://www.aliexpress.com/item/100...41.16;-1;1336@salePrice;CAD;search-mainSearch

Thanks!
 

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
38,471
Trophies
3
XP
29,138
Country
United States
I don't know for sure, but I used to use a toggle switch with the vwii and wii with the same hdd. No issues that I can remember.
 

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
  • I just picked up a 2-bay enclosure on craigslist for $10. Set to '2LUN' mode so that the 2 hard drives appear as 2 hard drives, instead of RAID0/1/SPAN which combines them into one. Long story short, didn't work as intended because only the first hard drive is recognized. The second is ignored. (By both wiiu and vwii.)
  • Drives need to shut down gracefully. A toggle switch does not do that. You may have been following the good practice of powering down before toggling your switch but I feel compelled to advise others of this precaution.
  • I am looking at some CIOS code right now. Specifically, usbglue.c. It scans through all LUNs on a USB interface and mounts the first that can be mounted. Imagine a multi card reader with e.g. 4 slots, and you can insert a CF card, an SD card, an XD card, and so on.... they share the same USB interface and got enumerated as different LUNs (logical unit number).
  • The big idea is, instead of scanning 0, 1, 2, 3... we scan backwards, and look for the last LUN first. [EDIT 2022-03-07 my cIOS mod relies on the "USB Port" setting to choose which drive shall be used to hold games. Set it to "1".]
  • So 1st drive for Wii U and 2nd drive formatted to FAT32 for vWii.
  • WiiU will continue to ignore the 2nd drive, which works in our favor - it won't even nag you to format the 2nd drive in Wii U format. You don't even need to worry about usbtoggle.
  • Both drives are adequately powered by an external power brick because all 2 bay enclosures are externally powered. No more Y-cables.
  • The idea is backward compatible with the case where you have only a single drive - scanning a single drive backwards will find that same single drive. There is no behavioural change in the single drive case.
  • I think the 2-bay enclosure idea is very compelling for the Wii U - perfect fit with what most people want to be doing. We just need to modify the CIOS to scan LUNs backwards.
  • I hope I am not oversimplifying. I am working on it right now. Maybe the hardest part is to learn how to build it and package it into a patch. [DONE 2022-03-07 and ready for testing]
 
Last edited by cyberstudio,
  • Like
Reactions: netsurf012

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
Got it working as intended - WiiU working off the 1st HDD and USB Loader GX off the 2nd HDD.

Please choose the first/latest and click on d2xl-cios under artifacts

This is a beta not a release. GitHub will not keep the zip for long. [EDIT: 90 days, I think.] Please test and report and if all goes well we could turn this beta into a "release" (or a released beta). [EDIT: Pull request created for Leseratte's d2xl]

xerpi's FAKEMOTE is included. (https://gbatemp.net/threads/release...rom-the-input-of-usb-game-controllers.601771/)

Install: use d2x-cios-installer 2.2 MOD to install on vWii or Wii Mini. Use the latest 3.1 from Open Shop Channel to install on Wii. Unzip contents to your app/d2x-cios-installer folder, overwriting the existing ciosmaps.xml and other files. Run d2x-cios-installer and choose the correct platform: vWii, Wii, Wii Mini PAL or Wii Mini NTSC-U.

The recommended base is 57 and the recommended cIOS slot is 249. Only base 56/57 are supported. There is no 2-bay enclosure/dock support for base 58 (because base 58 does not have the EHCI module), or any cIOS with 58 as base. [EDIT 2022-03-07 base 58 now supported]

In USB Loader GX, Hard Drive Settings, choose USB Port 1, and restart USB Loader GX. [EDIT: fixed and no restart required 2022-03-02] By default, both LOADER and GAME are set to IOS 249. You can change those so long as they both agree what "USB Port 1" means. You do not want e.g. the loader to load from a HDD on the physical USB Port 1 and the game to load from the 2nd HDD on physical USB Port 0.
  • To IOS 58 (default for Homebrew Channel) and v10-beta52, there is only one USB port and that is called USB Port 0 in USB Loader GX.
  • To v9 a.k.a v10-beta53-alt, USB Port 1 literally means USB Port 1 at the back of the console.
  • To my cIOS mod, if in USB Loader GX you set USB Port to 1 it means the 2nd HDD of a multi-bay drive enclosure. Only one physical USB port is supported for drives although you may plug in a PS3/PS4 controller into another USB port for FAKEMOTE.
  • For any cIOS based on 56/57, the drive(s) have to be plugged into physical USB Port 0 at the back of the console. For base 58, it doesn't matter which USB port it is plugged into. The recommendation is still to plug the drive(s) to USB Port 0 - you may have several cIOS's installed and some of them may expect drive(s) to be plugged into USB Port 0.
The setting USB Port "Both" does not work. Set it to 1. [EDIT: DONE 2022-03-02]

WiiXplorer is not compatible with my cIOS mod yet, and I will look into it. [EDIT: DONE 2022-03-12]

The WiiU side is not modded and is completely stock. Some combinations of enclosure/dock/HDD may lead to compatibility issues with the WiiU side. For instance I had a Rosewill RX200r. With a HGST 1TB pulled from an iMac it worked, but with a Seagate 500GB 7200rpm it didn't. Don't go hunt for what I am using because it had an old chipset with slower performance, although with USB 2.0 speed is irrelevant. Just see if anyone is unloading a dock (no pun intended) on craigslist or facebook.
WARNING! If Wii U nags you about formatting your drive when it starts up, ya, if you say yes, it will format the first drive of a multi-bay enclosure. But which is the "first" drive and how can we be certain? If you do want to format a new Wii U disk, PLEASE, do so with only a single drive in your enclosure so that there is no question of which drive Wii U will be formatting.
[EDIT 2022-03-18] Another warning! Don't buy the Rosewill RX200R. I am not sure if it is just buggy firmware or an issue with the JMS551 chip in general, but the 2 drives are very mixed up, and when I read the boot sector of drive 0 it actually returned the boot sector of drive 1! The reviews at newegg are saying data corruption. Under Windows the drives are marked offline if MBR is used instead of GPT although on a Mac both seem to be accessible.

Technical Details

Leseratte did the awesomest work to automate cIOS compilation on GitHub. I have submitted a request to merge back my fork. I hope there is a central repository to do cIOS development and all forks are temporary.

Even though my original idea of scanning LUNs backwards would have been backward compatible in the single drive case, I've decided against it because I want to do better than that, even a 2-bay on a Wii Mini shall behave exactly the same as before. That requires the user to explicitly tell USB Loader GX to use the 2nd drive, and that is done by the USB Port setting.

In v9 a.k.a. v10-alt there is a cIOS extension to change USB Port. The main r10 supports only one USB port, and it is where my cIOS mod is forked from. The USB Port change extension is repurposed to choose which hard drive to use. My intention is to change the cIOS only but not require new versions of any homebrew, so long as the homebrew already supports v9/v10-alt.

Questions? Your testing and feedback are very much appreciated.
 
Last edited by cyberstudio,

MikaDubbz

Well-Known Member
Member
Joined
Dec 12, 2017
Messages
3,849
Trophies
1
Age
36
XP
7,308
Country
United States
Got it working as intended - WiiU working off the 1st HDD and USB Loader GX off the 2nd HDD.

Please choose the first/latest and click on d2xl-cios under artifacts

This is a beta not a release. GitHub will not keep the zip for long. Please test and report and if all goes well we could turn this beta into a "release" (or a released beta). [EDIT: Pull request created for Leseratte's d2xl]

xerpi's FAKEMOTE is included. (https://gbatemp.net/threads/release...rom-the-input-of-usb-game-controllers.601771/)

Install: use d2x-cios-installer 2.2 MOD to install on vWii or Wii Mini. Use the latest 3.1 from Open Shop Channel to install on Wii. Unzip contents to your app/d2x-cios-installer folder, overwriting the existing ciosmaps.xml and other files. Run d2x-cios-installer and choose the correct platform: vWii, Wii, Wii Mini PAL or Wii Mini NTSC-U.

The recommended base is 57 and the recommended cIOS slot is 249. Only base 56/57 are supported. There is no 2-bay enclosure/dock support for base 58 (because base 58 does not have the EHCI module), or any cIOS with 58 as base.

In USB Loader GX, Hard Drive Settings, choose USB Port 1, and restart USB Loader GX. [EDIT: fixed and no restart required 2022-03-02] By default, both LOADER and GAME are set to IOS 249. You can change those so long as they both agree what "USB Port 1" means. You do not want e.g. the loader to load from a HDD on the physical USB Port 1 and the game to load from the 2nd HDD on physical USB Port 0.
  • To IOS 58 and any cIOS derived from IOS 58 as base, USB Port 1 does not exist.
  • To v9 a.k.a v10-alt, USB Port 1 literally means USB Port 1 at the back of the console.
  • To my cIOS mod, USB Port 1 means the 2nd HDD on USB Port 0. If it does not exist, or if a single bay HDD enclosure is used, it falls back to the only HDD.
The setting USB Port "Both" does not work. Set it to 1. [EDIT: DONE 2022-03-02]

WiiXplorer is not compatible with my cIOS mod yet, and I will look into it. [EDIT: DONE 2022-03-02]

The WiiU side is not modded and is completely stock. Some combinations of enclosure/dock/HDD may lead to compatibility issues with the WiiU side. For instance I had a Rosewill RX200r. With a HGST 1TB pulled from an iMac it worked, but with a Seagate 500GB 7200rpm it didn't. Don't go hunt for what I am using because it had an old chipset with slower performance, although with USB 2.0 speed is irrelevant. Just see if anyone is unloading a dock (no pun intended) on craigslist or facebook.

Technical Details

Leseratte did the awesomest work to automate cIOS compilation on GitHub. I will submit a request to merge back my fork. I hope there is a central repository to do cIOS development and all forks are temporary.

Even though my original idea of scanning LUNs backwards would have been backward compatible in the single drive case, I've decided against it because I want to do better than that, even a 2-bay on a Wii Mini shall behave exactly the same as before. That requires the user to explicitly tell USB Loader GX to use the 2nd drive, and that is done by the USB Port setting.

In v9 a.k.a. v10-alt there is a cIOS extension to change USB Port. The main r10 supports only one USB port, and it is where my cIOS mod is forked from. The USB Port change extension is repurposed to choose which hard drive to use. My intention is to change the cIOS only but not require new versions of any homebrew, so long as the homebrew already supports v9/v10-alt.

Questions? Your testing and feedback are very much appreciated.
OK, this is amazing and a game changer for the Wii U, no more having to swap hard drives or hitting switches or what have you when loading things from a USB drive for the vWii. I don't yet have a 2 drive enclosure, so I can't yet test your beta build here, but I'm eager to find one and give it a try asap.
 

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
I have been stabilizing for a week and I think it is now stable enough to be testable. By that I mean even if you use it as your daily cIOS it is still good. I'd invite everyone to test no matter what hardware or setup you have. Regression testing is very helpful and it is important to ensure that no existing functionality breaks and my mod is at least as stable as d2x-cios-v10-beta52.

If you do find a problem please note the base IOS (e.g. 57), commit number (the 7 hex digits in the firmware name) and compare it to d2x-cios-v10-beta52. It helps to diagnose whether a problem is newly introduced by my mod or an existing problem which has been around for a decade.

As for Nintendont, my understanding is that USB Loader GX passes the path of the game to it. I am pretty sure that does not include which drive it is. I do not know if Nintendont has any configuration setting to let you switch the drive like USB Loader GX or WiiXplorer. Sorry can't help here - I have never downloaded any games, I only rip genuine discs but I have been priced out of Gamecube by the pandemic. So I have never used Nintendont at all. Please try it and let me know.

Thanks in advance for your testing!
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,296
Trophies
4
Location
Space
XP
13,861
Country
Norway
I have been stabilizing for a week and I think it is now stable enough to be testable. By that I mean even if you use it as your daily cIOS it is still good. I'd invite everyone to test no matter what hardware or setup you have. Regression testing is very helpful and it is important to ensure that no existing functionality breaks and my mod is at least as stable as d2x-cios-v10-beta52.

If you do find a problem please note the base IOS (e.g. 57), commit number (the 7 hex digits in the firmware name) and compare it to d2x-cios-v10-beta52. It helps to diagnose whether a problem is newly introduced by my mod or an existing problem which has been around for a decade.

As for Nintendont, my understanding is that USB Loader GX passes the path of the game to it. I am pretty sure that does not include which drive it is. I do not know if Nintendont has any configuration setting to let you switch the drive like USB Loader GX or WiiXplorer. Sorry can't help here - I have never downloaded any games, I only rip genuine discs but I have been priced out of Gamecube by the pandemic. So I have never used Nintendont at all. Please try it and let me know.

Thanks in advance for your testing!
The thread for Nintendont says that "- The USB device can be connected on any USB Port, but it MUST be connected alone.
Do NOT connect another HDD at the same time. Even a WiiU formated HDD will prevent Nintendont from working.
Please, disconnect all your other connected device before launching Nintendont."
I don't think this is 100% true (at least not anymore), I think it depends on the order they're connected in.
It also says "Nintendont doesn't find my games when I have two drives connected
Nintendont mount only one drive at launch and doesn't test another one.
Nintendont mount HDD in decreasing order (port3->port2->port1->port0) and stop on the first connected HDD, even if not a compatible device."
So it sounds like at least the port scan order is already in reverse, if the LUN scan order is the same it may just work without any changes.
Even if not. Modifying that behavior in Nintendont should be easy (easier than modding cIOS) since it's just a normal piece of homebrew.
 

MikaDubbz

Well-Known Member
Member
Joined
Dec 12, 2017
Messages
3,849
Trophies
1
Age
36
XP
7,308
Country
United States
  • I just picked up a 2-bay enclosure on craigslist for $10. Set to '2LUN' mode so that the 2 hard drives appear as 2 hard drives, instead of RAID0/1/JBOD which combines them into one. Long story short, didn't work as intended because only the first hard drive is recognized. The second is ignored. (By both wiiu and vwii.)
I picked up a 2-bay enclosure, and it doesn't have a 2LUN mode, it has: RAID0, RAID1, JBOD, and SPAN, and the little diagram it comes with says that SPAN mode (which I would think is 2LUN since all other modes match up) is when it is recognized as a hard disk, the capacity is the sum of the two hard disks.

Meanwhile, JBOD reads like the mode I would think I want with: Recognized as two hard drives (factory default setting mode). But according to your post here, that mode combines the drives into one. So I guess I'm just confused here, I know I don't want to end up accidentally formatting either drive (I intend to use backup hard drives in setting this up, just in case something does go wrong and a drive gets formatted and loses all of it's data). Is JBOD the setting that I want here? Or is maybe my enclosure not the right kind to accomplish such a thing?
 

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
I fetched and read Nintendont code. Here is what NEWS.md says
Changes since v5.460:

### Major Changes ###

Skip USB drives that don't have a valid MBR or UStealth MBR signature. This usually happens on Wii U setups where the user has both a Wii U drive and a FAT32 drive for Wii and GameCube. This allows the user to keep both drives connected when running Nintendont.
@The Real Jdbye: You are right. The single drive requirement isn't true any more. I double checked the code. It doesn't matter if the first drive is on a separate USB port or shares the same USB port with the second drive in a 2-bay enclosure. Nintendont code is capable of rejecting any Wii U drive. It looks for the partition table and moves onto the next drive if there isn't any. A Wii U drive does not even have any partition table.

The code does not look like it is scanning in reverse - that might have been the algorithm at some point in the past but now, it scans forward, both ports, and LUNs, and reject any drive with invalid signature. That is the proper algorithm. It prevents confusion.

You don't even need my cIOS mod. Nintendont has always co-existed peacefully with Wii U.

I don't see how Nintendont's new algorithm can possibly go wrong. If some people are having difficulties, you know, Wii U HDD compatibility has always been more temperamental than Wii.

By the way I added base 58 support. Base 56/57/58 your choice.

@MikaDubbz I think JBOD is a vague term which could mean anything. In my case it means SPAN, but in your case it seems to be 2LUN. So long as you see 2 separate drives on a computer it is the right mode.
 
Last edited by cyberstudio,
  • Like
Reactions: MikaDubbz

Akiranon

Well-Known Member
Newcomer
Joined
Feb 14, 2007
Messages
79
Trophies
1
Age
34
Location
Right over there -->
XP
554
Country
Netherlands
My 2 bay enclosure should be coming in later today so I'll finally be able to test this out. Shipping from China took a while, but I can't wait to try this out.

For reference: I ended up buying the enclosure from the OP (the 3.5 inch version).

---

@cyberstudio: Enclosure seems to be compatible. I've done some early testing with your fork. Here are some of my findings:

WiiFlow Lite: Works perfectly when selecting USB port 1 in the startup settings. Played a couple of Wii games without any problems. Also played some emunand games: compatibility seemed unchanged compared to cIOS v8.

USB Loader GX: No problems, as far as I can tell.

Nintendont: Unfortunately NIntendont is unable to see the second drive in the enclosure and throws an error when selecting 'USB'. I have moved my Gamecube games over to my SD card to mitigate this issue.

One other thing that I noticed is that the drive did not seem to 'wake up/spin up' after playing a Gamecube game from the SD card. When returning to WiiFlow Lite after around 45 minutes, it seemed to hang on the splash screen. I'm pretty sure the disk did not spin back up.

Restarting the Wii U worked fine, however. I've tested using base 57 and commit fc60583.
 
Last edited by Akiranon,

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
  • Thank you for your testing and your feedback!!!
  • Nintendont - I am reading the code again. It's at line 963 in usbstorage.c. We need to insert "continue;" there, the case where a potential Wii U drive is found. Right now, it is abandoning the entire port. We should be skipping just that one drive but check disk signature of the next drive. I have filed issue #991 on GitHub. (https://github.com/FIX94/Nintendont/issues/991)
  • Spin up - I have been looking at that for more than a week. I was caught off guard - as it turns out timeout error handling will need to be rethought when there are more than one drive on the same USB interface, because the way to handle timeouts in the past 10 years was nuclear - reset and reinitialize the USB port. When you have 2 drives you can't do that, because the guilty would drag the innocent into the abyss, too. I went seriously over-budget and this has become a time-sink. I need a break from this and get some sleep.
 
  • Like
Reactions: netsurf012

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
I found the root of the problem, and the problem is >10 years old. I would say after having fixed this my mod is now even more stable than d2x-v10,

When there is a timeout with any disk operation, d2x-cios automatically resets the USB interface, but the reset itself runs a bunch of disk operations, and those disk operations may themselves timeout, which may cause a reset - an infinite loop is thus formed and it hangs. This is not a new problem but is at least 10 years old, and I think everyone of us has experienced a cIOS hang at some point, even with only a single drive, which in some cases can be attributed to this. The timeout is only 1s and a spinup almost certainly ignites this chain of reaction, although in most cases the reset went on without timing out itself. The whole problem is well hidden by a watchdog timer that keeps the disk awake all the time. When there are 2 disks, however, only one is kept awake this way, and the other goes to sleep, as it should. There are plenty more opportunities to spin up and more potential to trigger this infinite loop of resetting itself timing out.
 
Last edited by cyberstudio,

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Randomly decided to click on this thread to find out more what exists for dual drive enclosures but turns out there was actually a series of interesting hacking developments instead. Nice work all involved.
 
  • Like
Reactions: Pin1988

Akiranon

Well-Known Member
Newcomer
Joined
Feb 14, 2007
Messages
79
Trophies
1
Age
34
Location
Right over there -->
XP
554
Country
Netherlands
@cyberstudio : Some more observations after using your cIOS mod for a couple of days:
  • New version requires the use of port 0. Definitely seems to skip the Wii U HDD in the enclosure. Awesome!

  • The only USB loader that seems to be able to 'wake up' the enclosure after spinning both drives down seems to be USB Loader GX. USB Loader GX loads up with IOS58, which is able to spin up the drives again. It then switches to IOS249 and is able to list my games correctly.

    WiiFlow on the other hand is unable to wake up the drives because it doesn't use IOS58 initially and only seems to use IOS249. Not a dealbreaker for me, but just thought this might be of interest to you. This only seems to happen when both drives in the enclosure have been idle for a while (around 15 minutes). I can recreate this by playing Nintendont with a game off of the SD card. When soft resetting, WiiFlow hangs after trying to spin up the drives.

  • I just saw that you're also working on a version of NIntendont that supports the enclosure. I can definitely try this out for you when it's ready to be tested.
Thanks for your awesome work! It definitely seems stable enough to me for daily use.
 

cyberstudio

Member
Newcomer
Joined
Dec 2, 2020
Messages
17
Trophies
0
Age
53
XP
108
Country
Canada
Please pick the latest Nintendont mod at https://github.com/cyberstudio10/Nintendont/actions

So, Nintendont's reply was, if you already know how to fix the issue, why don't you just fix it... and submit a pull request.

But I don't use Nintendont myself, so I need your help!

Please try it and report. I am hoping one tester with a 2-bay drive enclosure, and another with a single drive. That way we prove both that it works, and it doesn't break anything.

Thanks in advance for your testing!!!
 

Akiranon

Well-Known Member
Newcomer
Joined
Feb 14, 2007
Messages
79
Trophies
1
Age
34
Location
Right over there -->
XP
554
Country
Netherlands
Thanks! It's able to list all my games off of my Wii hard drive now. Booting a game works in both Nintendont as well as when I'm using a loader.

There really only seems to be one problem: When soft resetting back to the loader, the Wii U seems to freeze up completely. Not sure how any of your changes impact that functionality, but it's defnitely broken now. Other than that, great work!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    DinohScene @ DinohScene: report your account, a supervisor will take care of it