Hacking USB Loader GX

  • Thread starter cyrex
  • Start date
  • Views 7,168,791
  • Replies 29,363
  • Likes 48

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
I always used microSD and it worked fine.
maybe it's a brand issue, or the SD adapter issue.

I think he is using the argument method (no config saved to Sd for nintendont) as it's the default launching method.

The fact he reported launching nintendont from the homebrew menu is working fine is very good. it means the problem is only when passing arguments.
or maybe he disabled the arguments, but in this case no nincfg.bin would be generated if the SD wasn't writable, and nintendont would just run like if there's no autoboot arguments either.

So, the problem is either :
- a bad argument generated inside the loader (this is strange, shouldn't be a problem)
- a nintendont issue when reading arguments (possible)
- the loader not deactivating the USB the same way when launching from the game list and from the homebrew menu (highly possible)
 
Last edited by Cyan,

wicksand420

Well-Known Member
Member
Joined
Nov 13, 2016
Messages
2,787
Trophies
1
Age
39
XP
2,296
Country
United States
I always used microSD and it worked fine.
maybe it's a brand issue, or the SD adapter issue.

I think he is using the argument method (no config saved to Sd for nintendont) as it's the default launching method.

The fact he reported launching nintendont from the homebrew menu is working fine is very good. it means the problem is only when passing arguments.
You might be right on the adapter, but it worked on wii u for a long time, then when i tried to use my vwii, usbloader gx wouldn't make a config. I know it wasn't the card however, because i got it at walmart, and have tested it in many ways to make sure there wasn't anything wrong with it since i had the problem with gx.
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Could you try to disable the "nintendont autoboot" in the global setting and launch a game with the adapter connected?

Disabling nintendont autoboot in global settings w/ adapter connected boots the game perfectly with GameCube support. This was one of the tests that lead me to post here vs the nintendont thread.

disable the argument, and generate a nincfg.bin instead. that way, it will boot exactly the same way than if you go into the internal homebrew launching menu.
it's in the global settings too. (something like "always generate the config" and maybe "always use the config" to disable argument completely)

I am not familiar with how to disable the argument. The only similar setting I see is "Settings File" under the USBLoaderGX Nintendont Loader settings.


"No Change" -> default setting in which all previous tests were completed under.

"Delete" -> same black screen lockup, nincfg deleted from SD root

"Create" -> same black screen lockup, new nincfg generated to SD root


After the new nincfg was created, reattempting to boot the game still results in a black screen lockup in "Create", "No Change", and "Delete" configurations. Accessing Nintendont through the in-app homebrew launcher autoboots into game selected before the initial black screen lockup under the "Create" setting.

During my experimentation yesterday I also tested USBLoaderGX Nintendont Loader setting for "USB-HID Controller" and found no difference if On or Off. I checked this setting with and without Nintendonts controllers.zip.


will usbloader gx save your config, you said you where using a micro sd but i had to switch from my sandisc ultra 64GB micro sd to a full sized SD because usbloader gx didn't work correctly with micro sd

My main card is a 128gb Samsung microSD card w/ redNAND. I noticed this behavior and figured I finally ran into an incompatibility. I replicated the results of my Samsung microSD using a spare SanDisk 32gb microSD card with the bare minimum software needed to test this out. Unfortunately, I don't own any full sized SD cards anymore.
 
Last edited by JacobM,
  • Like
Reactions: wicksand420

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
disable autoboot, and select Create the config.
this way, it will set the correct settings for your game based on the settings set in USBLoaderGX, but will not autoboot the game.

I don't remember how to disable the argument automatically. I will have to check.
edit: disabling autoboot is also disabling arguments, and using the config file only.


HID has no effect on HID controller, it's used for something else (I forgot).
sorry, I didn't code for more than 1 year, I forgot things.
edit2:
that setting is unused in nintendont since 3.304, but USBLoaderGX uses it to know if you want to use a HID controller or not.
if you enable it, it will copy the controller.ini to the launch partition if missing before launching the game (in case you use your own controller.ini)
I could rename it to "check for controller.ini" if nintendont 304+ detected.




a thing you can try :
- disable autoboot
- set the config to Create
- launch a game (it will create the config with the settings, but without autoboot in it)
- in nintendont enable autoboot option manually
- launch the game you wanted to play (it will add autoboot while keeping the same settings)
- exit
- launch Nintendont from WiiU WiiVC nintendont forwarder (a normal forwarder, not "disable autoboot" nor "load disc" etc.), just the usual nintendont forwarder dol which will read the existing nincfg.bin file from SD which has autoboot+game settings set.

See if running nintendont with that cfg file and autoboot in it is a problem.
if it is, then the issue is on Nintendont side (both from argument AND config file reading) and probably due to autoboot setting.


if it's an issue in nintendont, does WiiU WiiVC forwarder autoboot with injected ISO inside has the same issue?
 
Last edited by Cyan,

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
- disable autoboot
- set the config to Create
- launch a game (it will create the config with the settings, but without autoboot in it)
- in nintendont enable autoboot option manually
- launch the game you wanted to play (it will add autoboot while keeping the same settings)
- exit
- launch Nintendont from WiiU WiiVC nintendont forwarder (a normal forwarder, not "disable autoboot" nor "load disc" etc.), just the usual nintendont forwarder dol which will read the existing nincfg.bin file from SD which has autoboot+game settings set.

See if running nintendont with that cfg file and autoboot in it is a problem.


Thank you for the detailed explanations. I ran through the steps above and the game booted properly from the WiiU WiiVC Nintendont Forwader with Gamepad and GameCube controller support. I generated a Nintendont Wii U Wii VC Forwarder using the dol included in KhaderWelaye's script at "\WiiVC Injector Script [2.2.6]\TOOLS\Storage\nintendontFor.dol"

I believe this is a normal forwarder based on Line 435...
IF /i "%autoboot%"=="n" (echo Replacing Nintendont forwarder with non-autobooting version...>con) & (copy TOOLS\Storage\nintendontFor.dol TEMP\sys\main.dol)
Happy to try other tests if anything comes to mind! I also tried the "Log to File" setting in USBLoaderGX which I believe is under the Nintendont heading. Unfortunately, it does not seem like a log is generated at the point nintendont locks up.
 

wicksand420

Well-Known Member
Member
Joined
Nov 13, 2016
Messages
2,787
Trophies
1
Age
39
XP
2,296
Country
United States
So no advice on getting stuck on "reinitializing devices"?
When you plug in your western digital hdd into your computer does it ask you for a password for the drive? if so you installed the utility that came with the western digital hdd and wont be able to use it with wii or wii u
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
I ran through the steps above and the game booted properly from the WiiU WiiVC Nintendont Forwader with Gamepad and GameCube controller support.
thank you for testing that.
So, this is not a problem from nintendont reading the configs.
it's also not a problem in the way nintendont is launched in the loader (from hb menu or from selecting a game), so the usb de-init done by USBGX is not the problem either.

it looks like the problem is only when passing arguments.

Can you launch USBGX from vWii HBC (no more from WiiU VC) ?
Set autoboot back to ON
first, try with the same versions (usbgx and nintendont) : we will see if it's only when launched from wiiuvc
Second test with USBGX 1262 (if you don't have it, look on the first post, there's a link with all previous releases) : we will see if it's a bug in latest release
third test with an older nintendont (4.451? before WiiU VC support) : we will see if it's a new nintendont issue

sorry for all these new tests :P

I can make you a version of the loader which autoboot but doesn't use arguments (only generates a nincfg.bin file with autoboot info in it before launching nintendont, to see if the issue is arguments passing to nintendont)
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
There is a newer Nintendont settings flag but that shouldn't affect launching it. It's at the end of the bitfield and defaults to off.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
yeah, I don't think nintendont has issue reading these settings, if missing it's adding it, if present it's using it.
the new settings shouldn't be the problem.

What's strange is that he is the only user who reported that problem, so it's not like nintendont had an argument reading problem in new releases (I didn't read nintendont thread's last pages, but I just suppose no other users have that issue).


Maybe I'll change the way the loader is initializing the hdd, I have enough to tell users to set IOS58 in the settings :lol:
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
thank you for testing that.
it looks like the problem is only when passing arguments.

Can you launch USBGX from vWii HBC (no more from WiiU VC) ?
Set autoboot back to ON
first, try with the same versions (usbgx and nintendont) : we will see if it's only when launched from wiiuvc
Second test with USBGX 1262 (if you don't have it, look on the first post, there's a link with all previous releases) : we will see if it's a bug in latest release
third test with an older nintendont (4.451? before WiiU VC support) : we will see if it's a new nintendont issue

I tested a lot of different scenarios before my original post and do not recall having any compatibility issues anywhere else other than the WiiU WiiVC + GameCube Adapter configuration I noted. I reran through the following tests below to confirm my original findings:

USBGX 1265 vWii HBC , Autoboot on, no change to nincfg.bin - WORKS
USBGX 1265 vWii HBC , Autoboot on, create nincfg.bin - WORKS
USBGX 1265 vWii HBC via Nintendont 4.451, Autoboot on, no change to nincfg.bin - WORKS
USBGX 1265 vWii HBC via Nintendont 4.451, Autoboot on, create nincfg.bin - WORKS
USBGX 1262 vWii HBC , Autoboot on, no change to nincfg.bin - WORKS
USBGX 1262 vWii HBC , Autoboot on, create nincfg.bin - WORKS
USBGX 1262 vWii HBC via Nintendont 4.451, Autoboot on, no change to nincfg.bin - WORKS
USBGX 1262 vWii HBC via Nintendont 4.451, Autoboot on, create nincfg.bin - WORKS


I can make you a version of the loader which autoboot but doesn't use arguments (only generates a nincfg.bin file with autoboot info in it before launching nintendont, to see if the issue is arguments passing to nintendont)

I am happy give it a shot. I also think it would also be a good idea if someone could replicate my setup to see if this is an isolated incident (WiiU WiiVC USBLoaderGX Forwarder with GameCube adapter connected).

yeah, I don't think nintendont has issue reading these settings, if missing it's adding it, if present it's using it.
the new settings shouldn't be the problem.

What's strange is that he is the only user who reported that problem, so it's not like nintendont had an argument reading problem in new releases (I didn't read nintendont thread's last pages, but I just suppose no other users have that issue).

This issue only began starting Nintendont 5.456 in which Fix94 repaired HID support for WiiU WiiVC. I figured Nintendont was not recognizing the adapter as plugged in prior to that revision which explains why it works similarly to not having an adapter connected on later revisions. (https://github.com/FIX94/Nintendont...eaee0e3#diff-55c1d4c0086bdc02658384f5f39ea5e7)

I have not seen anybody report this issue either, but I have also only seen a handful of people even suggest using USBLoaderGX as a frontend (yourself included). I made my own WiiU WiiVC forwarder by extracting the forwarder dol from the installable WAD on sourceforge (did I overcomplicate the process?). A while back a user here posted their WiiU WiiVC forwarder package and I also got the same results with that users forwarder.

I also have not seen anybody report a UI bug USBLoaderGX experiences when running in WiiU WiiVC mode. After initially selecting the game (but not yet starting it) the banner and buttons for "Settings" and "Start" are invisible. You can still click "Start" or "Settings" if you know where the buttons should be. I never bothered to report this either since USBLoaderGX never claimed to be compatible under WiiU WiiVC and I was willing to work around them. I figured this was somehow related to the blocked IOS reload. Both r1262 and r1265 have the issue and the issue does not occur if booted from vWii or from a HBL2HBC mod. I only decided to speak up because you mentioned WiiU WiiVC compatibility as your near future plans! Sorry for all the headache!

There are a fairly significant number of people having black screen lockups with the newer nintendonts although Fix94 still hasn't been able to isolate the source of the problem. https://github.com/FIX94/Nintendont/issues/487
 
Last edited by JacobM,

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
the banner and buttons for "Settings" and "Start" are invisible
you are right, it's probably caused by the IOS restriction.
the loader is trying to reload to IOS58 or 249, maybe it lose the AHB access (it's provided by the WiiU VC, but the loader probably lost it in the reload process).
it's strange it's only these buttons, I thought all the interface would suffer from the missing NAND access.


it's interesting that only 5.456+ have this bug, but I wonder why it's only when autobooting with arguments and why only with WiiVC.
Maybe Fix94 didn't expect arguments launching when using wiiVC so he didn't init the HID there? I didn't look at nintendont sources for a long time, I don't even understand it anymore (he made so many changes).
I don't know if we can bother him here, or maybe it's better to report in nintendont thread.

I think you did enough tests to explain it, I would ask like that (you can copy/paste) :
since 5.456 (with the new HID init), when launched from WiiU WiiVC, the HID only works when nintendont is loaded using nincfg.bin, not when launched with arguments (from an external loader).
it works fine when launched from an external loader using nincfg.bin instead of arguments.
Maybe the HID initialization is missing or different when reading the settings from arguments?
 
Last edited by Cyan,

tswntk

Well-Known Member
Member
Joined
Aug 6, 2012
Messages
1,018
Trophies
1
XP
2,370
Country
Switzerland
IIRC, when nintendont first added autoboot support, it will also lock up with argument passing from ULGX when an HID controller is plugged in. The fix is to initialize the HID controller first thing inside that argument handler (from nintendont side). Maybe the original initialize routine isn't working anymore with all the latest changes? you need another initialize routine for the adapter?

But I am not too sure if my memory serves me right.

If you have other HID controllers, may be you can try if they are working?
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
you are right, it's probably caused by the IOS restriction.
the loader is trying to reload to IOS58 or 249, maybe it lose the AHB access (it's provided by the WiiU VC, but the loader probably lost it in the reload process).
it's strange it's only these buttons, I thought all the interface would suffer from the missing NAND access.

Surprisingly, banner grid layout and the title banners are the only two things broken in USBLoaderGX when running as a Nintendont frontend. Attempting to select Banner grid layout triggers an error that says "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version." I think you are onto something with AHB access being the root cause.

I think you did enough tests to explain it, I would ask like that (you can copy/paste) :

Thanks. Posted in the Nintendont thread and already received a response from Fix94. https://gbatemp.net/threads/nintendont.349258/page-1925#post-7668132

The fix is to initialize the HID controller first thing inside that argument handler (from nintendont side).

If you have other HID controllers, may be you can try if they are working?

Just replicated my results with a PS4 controller. Also tried a USB Keyboard although I'm not sure if USB keyboards were ever supported to begin with.
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
d2x cIOSes have the AHB_PROT flag turned on in their metadata file so they should always have it disabled. IOS 58 has it on by default so if you're using it then you have to start the loader from the forwarder channel or the HBC as they have that flag in their TMD as well.

There is no USB HID controller or keyboard support in GX right now.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
he meant on nintendont (hid keyboard support).

About the AHB issue, I think it's because the loader force a reload to cIOS to init he devices instead of keeping IOS255. (or keeping 58 from hbc)
I'll add a check for 255 at the starting process, and prevent reload of IOS, as cIOS255 has ahb access.
if 255 is detected, I'll add gamepad support too.

I think I'll change the way the boot is done.
like "check ahb" first, if enabled then init the devices.
if 255, don't reload
if not 255, check config to reload to user's defined ios

or should I check for 58 instead of ahb ? force reload to 58 if present, mount devices, read config, reload to cIOS if requested.
 
Last edited by Cyan,
  • Like
Reactions: Magnus87

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
I have a drive enclosure that doesn't initialize (Seagate FreeAgent Desk) so maybe I can try to figure out a way to fix that now.
 

OuahOuah

Well-Known Member
Member
Joined
Oct 2, 2006
Messages
1,072
Trophies
1
Age
46
Location
France
Website
www.ouahouah.eu
XP
764
Country
France
Managed to get SD card working now :)

So I can see GC games in USB Loader GX.
I can launch them, selecting Nintendont mode.

And now, the big question : which controller can I use ?

Wiimote does not respond, WiiU GamePad is not available in Wii mode.

Can I use WiiU GamePad launching GC games in USB Loader GX ?
I remember using WiiU GamePad in USB Loader GX but can't remember how I enabled this...

This way, I will transfer GC games from SD card (to launch in Nintendont from WiiU menu) to Wii HDD AND will use GamePad as well.
 
Last edited by OuahOuah,

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
wiimote doesn't work when in WiiVC? maybe it needs the "wiimote pass through" patch ?
I will add gamepad support.

currently, the WiiU gamepad doesn't work inside USBLoaderGX, but works fine in nintendont launched from USBGX.
so it's only a temporary "unavailability" until nintendont is launched.

What you probably remember is using the WiiU classic Controller gamepad, not the wiiu gamepad (with the screen).

If you inject gamecube ISO to HDD or nand, then you don't need USBGX anymore to launch them.
when launching from a WiiU WiiVC, USBGX is only a frontend for nitnendont to launch gamecube located on SD.
 
Last edited by Cyan,
  • Like
Reactions: OuahOuah

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: I did use a bot for Diablo III though but no ban there lol