Hacking USB Loader GX

  • Thread starter Thread starter blackb0x
  • Start date Start date
  • Views Views 8,069,258
  • Replies Replies 30,226
  • Likes Likes 74
I think you either have the full channel or the wrong forwarder installed. The full channel doesn't read the /apps/usbloader_gx/boot.dol file at all so it should always be showing "3.0c r1180".
Yep, that's why I'm sure I used the Forwarder Channel.
Unfortunately it's not working again now (even not through Homebrew Channel). -.-
All I did was putting my gamecube games and saves and the sneek folder to the drive.
Instead of spamming this thread any longer I'll make many tests and small steps now to figure out what the hell the problem might be.

Edit: It's getting stranger and stranger.
The freeze error appears everytime I boot my vWii EXCEPT when I boot WiiFlow once (where the drive is always working), exit to Homebrew Channel and launch USB Loader GX just then.
 
Last edited by lordelan,
I have a preliminary rebase of d2x-cIOS using the latest FatFS (R0.12b). I have to test it first, but assuming it works, it will initially add support for exFAT, plus fix various bugs since the version d2x is currently using (R0.08b). I'll need to look through the rest of the code to see where the EmuNAND device is selected and update that to handle GPT and EBR, as well as porting over the relevant FatFS code from Nintendont.

No test builds yet (I need to test it myself before releasing anything), but I'll set up a travis-ci build once I get it working.
 
Thank you for looking at d2x project.
GPT and EBR are working fine with Wii games (but it's probably because it uses fraglist).


some users reported HDD init issue with USBGX and cIOS (mainly with recent HDD), maybe there's something which could be updated in d2x instead of USBGX.
It usually init fine when using IOS58.

Edit:
Oh, and if you can, it would be nice to add the System title installation Patch on vWii. Currently only cIOS236 has it, d2x is not enough to fix semi-bricked vWii.
At the same time it's also a bick protection to not have that install prevention patched (prevent users from installing wrong IOS58). what do you think?


@lordelan :
There are two forwarder for vWii.
An old one (tagged incorrectly as 5.1) and the real v5.1 (tagged "fixed").

the old 5.1 was in fact v2.0 without USB init.
The new "5.1 Fix" is the one you want.

https://sourceforge.net/projects/usbloadergx/files/Releases/Forwarders/
 
  • Like
Reactions: lordelan
@lordelan :
There are two forwarder for vWii.
An old one (tagged incorrectly as 5.1) and the real v5.1 (tagged "fixed").

the old 5.1 was in fact v2.0 without USB init.
The new "5.1 Fix" is the one you want.

https://sourceforge.net/projects/usbloadergx/files/Releases/Forwarders/
Mh that was exactly the same WAD I already had on my SD.
But it seems that not the channel was the problem but the fact that I have to start WiiFlow once on every vWii boot, quit it and only then proceed to enter USB Loader GX. It's the only way for it not to freeze. Really, really odd. :/
 
the fact that you have to start wiiflow just show that you need IOS58 to "wake up" the drive.
Another solution is to go to HBC and go to option to load Apps from USB (even if you have them on SD) to wake it up, then go back to list apps from SD and launch USBGX.

It "should" do the same inside USBGX if you set the IOS to 58.

Another solution is to plug the drive when you see the countdown screen, because the HDD will wake up and initiate spin up when plugged, so it will be detected correctly.
Maybe cIOS could add a "wakeup" command. (or maybe it's already there but not used in GX?)
There's a wakeup and spinup code in GX, but it seems it's freezing there like if it wasn't waking up and you need an external intervention to do it.

it's currently using these functions:
DISC_INTERFACE from libogc (ogc/disc_io.h) and a modded one for dual port support.
cIOS: &__io_usbstorage2_port0
IOS58: &__io_usbstorage;


I will check how wiiflow is initiating the drive and see if I can change USBGX (if different).
Maybe it's only forcing HDD to use IOS58 instead of cIOS to init, but not everyone had IOS58 in the past, and some HDD had issues with 58 so we made it an option only.

Edit:
OH, there's a hidden option in WiiU to disable spindown and HDD sleep timer !
You have to press some buttons in a specific menu.
settings>Data management> keep pressed "D-pad down" "+" "-"
I don't know if it will affect other media than WiiU formated HDD, but you can try.
 
  • Like
Reactions: lordelan
Very quick steps, without details or links, because I don't know what you currently have nor your current level in wii hacking:

First, install HBC with banner bomb.
Then install a cIOS (a single one is enough, usually d2x v8 base57 in slot249)
Download and extract latest USBLoaderGX to your SD card
Connect SD card and an external USB HDD (don't use flash drives)
launch USBLoaderGX from HBC.
 
Very quick steps, without details or links, because I don't know what you currently have nor your current level in wii hacking:

First, install HBC with banner bomb.
Then install a cIOS (a single one is enough, usually d2x v8 base57 in slot249)
Download and extract latest USBLoaderGX to your SD card
Connect SD card and an external USB HDD (don't use flash drives)
launch USBLoaderGX from HBC.

Why no flash drives? I got no PSU with my HDDs.
 
EmuNAND Channel : Full
default mode. if you run a channel on emuNAND, you need to access all the data from that emulated NAND.
You can't (or shouldn't) use partial for launching a channels located on emuNAND.
I always said I'll remove that option but haven't done it yet.

I read lots of posts in which you were advising not to use partial mode for emuNAND (for channels). Can you explain me why? I would like to understand the issue with this mode, since I use it for all my VC channels, and I never had any issue. I prefer to use partial mode instead of full mode because it doesn't require a dump of my NAND (or a new NAND image created from scratch + an extraction of Sysconf). In addition, even if I switch of Wiis or sync a new wiimote with my realNAND, the wiimotes synced are always the one of the current Wii. Is there any advantage to use full mode?

About neek2o implementation, do you think it can be possible to set two different emuNAND paths? I would like to use one for channels and the other one to boot a clean neek2o system menu (to launch Wii iso not compatible with cIOS). The point of having two is to avoid to have too many channels in the neek emuNAND. Like this, the system menu of the neek NAND will boot a lot quicker. For this purpose, as already suggested by other users, I would love to have a button on the main screen to boot it directly and I like your suggestion to activate it only on request in the settings or if the neek NAND is set.
 
Last edited by WuaZ,
Why no flash drives? I got no PSU with my HDDs.
The Wii and WiiU are not very good with flash drives (even Nintendo doesn't recommend them).
You can try, but be aware that any compatibility issue you'll get will most likely be due to using a flashdrive over an HDD.
Known issue :
- drive not detected (random)
- Cannot dump Game disc to Flash drive (always)

I read lots of posts in which you were advising not to use partial mode for emuNAND (for channels). Can you explain me why? I would like to understand the issue with this mode, since I use it for all my VC channels, and I never had any issue
It works fine with partial? without the need to install VC on your Real NAND?

I thought using partial had issues with VC as the tmd and ticket weren't created on the correct nand, and users had errors when playing.
A solution was to install the same game on real NAND too, which defeat the EmuNAND purpose.

I always wanted to remove partial for EmuNAND because I didn't see a use, and nobody reported using it, but if you say you do and it works as expected I should keep it.
In fact, I should check the sources, I'm even wondering if full mode is not forced and the setting bypassed (so not used).
Are you sure it's using your RealNAND mii and wii sync/settings inside channels launched from emuNAND?
You can launch emuNAND Channels without doing a full dump ? you just install them on an empty path and the loader generates the required files? (tmd/ticket related)



About neek2o implementation, do you think it can be possible to set two different emuNAND paths?
It's already possible, but not easy to setup for your needs with the current implementation.
Currently, you can set a different EmuNAND path to a game, in the individual game settings.
Do to what you want, you'd have to edit ALL your game's individual settings one by one to keep the default for Wii disc, with is not the est way to achieve it...

When I implemented neek2o, I found that there's a way to keep and boots different by default and force a path with games only.
I did the thing like that :
games : always use the current path set in global settings
features : boot neek2o
features : set current EmuNAND path as defaut for neel2o

this way you could always boot to a clean neek2o system menu (for speed reason), but games would boot to the correct emuNAND path.
That option was the first idea I wanted to do.
But I found an issue with "return to", probably a bug in neek2o or maybe just something overthought and never implemented correctly.

default nand : nand/neek1/
game nand : nand/game/
when you boot the game, it correctly use /game/ folder, but when you exit the game it tries to "return to" NK2O channel located on the default nand /neek1/.
So you'd tell me, no problem, let's just install "NK2O" on the default nand, and you are right.
The issue is if user disable "return to" option to be able to play a channel, then exit to neek to play a different channel without going back to USBGX. In that case, exiting the first game would exit to the default path, without any game channels.


I would love to give options to the user but fear it would become too complicated to understand their purpose.
I could add an option in loader settings to "always boot neek using the default path" : ON/OFF.
when set to OFF, it would add an option to "set current path as default for neek". which will affect only the neek launched from the features menu.

That's a possible method, I need to find good wording so users understand what it is and how to use it.
 
  • Like
Reactions: Procyon
The Wii and WiiU are not very good with flash drives (even Nintendo doesn't recommend them).
You can try, but be aware that any compatibility issue you'll get will most likely be due to using a flashdrive over an HDD.
Known issue :
- drive not detected (random)
- Cannot dump Game disc to Flash drive (always)


It works fine with partial? without the need to install VC on your Real NAND?

I thought using partial had issues with VC as the tmd and ticket weren't created on the correct nand, and users had errors when playing.
A solution was to install the same game on real NAND too, which defeat the EmuNAND purpose.

I always wanted to remove partial for EmuNAND because I didn't see a use, and nobody reported using it, but if you say you do and it works as expected I should keep it.
In fact, I should check the sources, I'm even wondering if full mode is not forced and the setting bypassed (so not used).
Are you sure it's using your RealNAND mii and wii sync/settings inside channels launched from emuNAND?
You can launch emuNAND Channels without doing a full dump ? you just install them on an empty path and the loader generates the required files? (tmd/ticket related)




It's already possible, but not easy to setup for your needs with the current implementation.
Currently, you can set a different EmuNAND path to a game, in the individual game settings.
Do to what you want, you'd have to edit ALL your game's individual settings one by one to keep the default for Wii disc, with is not the est way to achieve it...

When I implemented neek2o, I found that there's a way to keep and boots different by default and force a path with games only.
I did the thing like that :
games : always use the current path set in global settings
features : boot neek2o
features : set current EmuNAND path as defaut for neel2o

this way you could always boot to a clean neek2o system menu (for speed reason), but games would boot to the correct emuNAND path.
That option was the first idea I wanted to do.
But I found an issue with "return to", probably a bug in neek2o or maybe just something overthought and never implemented correctly.

default nand : nand/neek1/
game nand : nand/game/
when you boot the game, it correctly use /game/ folder, but when you exit the game it tries to "return to" NK2O channel located on the default nand /neek1/.
So you'd tell me, no problem, let's just install "NK2O" on the default nand, and you are right.
The issue is if user disable "return to" option to be able to play a channel, then exit to neek to play a different channel without going back to USBGX. In that case, exiting the first game would exit to the default path, without any game channels.


I would love to give options to the user but fear it would become too complicated to understand their purpose.
I could add an option in loader settings to "always boot neek using the default path" : ON/OFF.
when set to OFF, it would add an option to "set current path as default for neek". which will affect only the neek launched from the features menu.

That's a possible method, I need to find good wording so users understand what it is and how to use it.

I think I'll just try, or just dump my NAND and play w/ Dolphin
 
Are you sure it's using your RealNAND mii and wii sync/settings inside channels launched from emuNAND?
You can launch emuNAND Channels without doing a full dump ? you just install them on an empty path and the loader generates the required files? (tmd/ticket related)

To be sure, I did tests this morning. I launched ShowMiiWads and
1) Set the NAND path to an empty folder called nand
2) Install in this folder the Mii channel and a VC game (ShowMiiWads created 4 folders: shared1, sys, ticket, title)
NAND_content.PNG

Generated_NAND_before_boot.PNG

3) Replace the nand folder in my USB stick with this new folder
4) Started USB Loader GX (with emuNAND channel to partial and current emuNAND path to /usb/nand/) and display only emuNAND channels: I got two, the Mii channel and the VC game
5) Started the VC game: my wiimote remained synchronized
6) Started the Mii channel: all my Miis were here
7) When I checked the content of the nand folder after booting the channels with USB Loader GX, new folders were present (generated by the loader): import, meta, shared2, tmp.
Generated_NAND_after_USB_Loader_GX.PNG

8) I tried to boot the VC game in full mode and got a black screen (might be due to a random bug with the cIOS used, i.e. d2x v10 beta r53-alt). As far as I remember, when I did some testing a year ago with a freshly generated (and thus complete) NAND, the full mode was booting but without any wiimotes synchronized and with no Mii in the Mii channel.

So from my point of view partial mode in working as expected. I know I will need a dump of my NAND for neek mode (I had one in a different folder before you implemented neek2o for testing purpose), but for users who just want to play a few VC and WW games compatible with cIOS emuNAND method, partial mode seems to be the simplest emuNAND mode.
 
Last edited by WuaZ,
Thank you for your test and report :)
So, I guess it answers my question whether I should keep or remove the emuNAND partial option.
I guess I should also stop telling users to only use FULL mode.

I see you used ShowMiiWad to add wads and it succesfully generated the required files in folders: shared1, sys, ticket, title.
I wonder if USBLoaderGX is generated them or expect them to be already present from a full dump. maybe that's why users had issues with partial? Or maybe I fixed the partial issue without knowing it with one of the few fixes I did on emuNAND's sources.


Note : I finally updated the first post with the new sourceforge URLs and I added the new changelogs since r1226.
I cut the changelog in two : pre/post googlecode.
 
It "should" do the same inside USBGX if you set the IOS to 58.

Edit:
OH, there's a hidden option in WiiU to disable spindown and HDD sleep timer !
You have to press some buttons in a specific menu.
settings>Data management> keep pressed "D-pad down" "+" "-"
I don't know if it will affect other media than WiiU formated HDD, but you can try.
Very helpful post, thank you. I'll try these both things first.
Would there be any disadvantages when I change USBLGX to IOS 58? Less game compatibility or something like that?
 
NAND dumping : inside USBLoaderGX > settings > features > Dump NAND > Full

but first you should install cIOS so USBLoaderGX can use it to dump the NAND.

d2x cIOS installer pack with full version for Wii (NOT WiiU vWii).

Extract to your SD, inside a subfolder of your apps. it should be :
sd:/apps/installer/boot.dol (and all other files and folders here)
NOT sd:/apps/boot.dol , or sd:/boot.dol

Then launch it from HBC, and select this from the menu :
what : v8
slot : 249
base : 57
version : 21008
Press A to install (you need a working network setup)
then exit and you can delete it from your SD card.


Very helpful post, thank you. I'll try these both things first.
Would there be any disadvantages when I change USBLGX to IOS 58? Less game compatibility or something like that?
No, because the IOS58 is not used by games, it's used by the loader (when you are inside the loader's interface).
the games are still using cIOS (or it wouldn't be able to redirect Disc access to USB while playing).

Using IOS58 inside the homebrew has the advantage of using nintendo's official USB2 drivers.
There's no disadvantage if it works with your drive, except if you use dual port !
IOS58 is mounting USB Port in reversed order (port1 first, then Port0, so if you have dual port setup, your partition order will be messed).
 
NAND dumping : inside USBLoaderGX > settings > features > Dump NAND > Full

but first you should install cIOS so USBLoaderGX can use it to dump the NAND.

d2x cIOS installer pack with full version for Wii (NOT WiiU vWii).

Extract to your SD, inside a subfolder of your apps. it should be :
sd:/apps/installer/boot.dol (and all other files and folders here)
NOT sd:/apps/boot.dol , or sd:/boot.dol

Then launch it from HBC, and select this from the menu :
what : v8
slot : 249
base : 57
version : 21008
Press A to install (you need a working network setup)
then exit and you can delete it from your SD card.



No, because the IOS58 is not used by games, it's used by the loader (when you are inside the loader's interface).
the games are still using cIOS (or it wouldn't be able to redirect Disc access to USB while playing).

Using IOS58 inside the homebrew has the advantage of using nintendo's official USB2 drivers.
There's no disadvantage if it works with your drive, except if you use dual port !
IOS58 is mounting USB Port in reversed order (port1 first, then Port0, so if you have dual port setup, your partition order will be messed).

Does that work on EUR? NVM I just saw that you're French ;)
 
Last edited by Procyon,
great, you managed to install everything and make it work with very few details or tutorial ^_^

people usually add Priiloader (I didn't tell you about it)
It's a program which inserts and runs before the system menu. It's used as a way to patch the console (region free, no update message, remove copy protection from savegames, etc.)
It's also useful to fix a broken Wii, as you can bypass the system menu and directly boot into homebrew channel.

If you didn't install it yet, you can do it.
I let you search how to install it and how it works, lot of threads and users already talked about it.
 
  • Like
Reactions: Procyon

Site & Scene News

Popular threads in this forum