Hacking USB Loader GX

  • Thread starter cyrex
  • Start date
  • Views 7,166,586
  • Replies 29,363
  • Likes 48

VashTS

Beat it, son
Member
Joined
Mar 14, 2009
Messages
4,308
Trophies
1
Age
39
Location
Upstate NY
XP
3,756
Country
United States
@Cyan i think we may have talked about it years ago but any ideas why USB Loader GX doesn't cache BNR for Wiiware titles?

It's happened to me in the past and I just got a new HDD and it's still happening. Wiiflow can cache them and I have pointed USB Loader GX to the Wiiflow folder and they do play just fine after Wiiflow caches the BNR.

You have made some very impressive improvements to GX and I appreciate all you have done for the app.
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
The banner caching issue happens because Channels.cpp uses ISFS_MAXPATH for it's path length and that's only 64. I fixed it in my fork a few months ago but you can get around it in the official release by either using "/nand/" for your folder or a short name for the folders if you're putting them under "/nands/". (i.e.: "/nands/0/")

It really shouldn't be necessary to cache EmuNAND banners, though since the banner is already in a folder by itself: the 00000000.app files.
 
Last edited by GreyWolf,

VashTS

Beat it, son
Member
Joined
Mar 14, 2009
Messages
4,308
Trophies
1
Age
39
Location
Upstate NY
XP
3,756
Country
United States
The banner caching issue happens because Channels.cpp uses ISFS_MAXPATH for it's path length and that's only 64. I fixed it in my fork a few months ago but you can get around it in the official release by either using "/nand/" for your folder or a short name for the folders if you're putting them under "/nands/". (i.e.: "/nands/0/")

It really shouldn't be necessary to cache EmuNAND banners, though since the banner is already in a folder by itself: the 00000000.app files.

My emuNAND is under usb:/nands/default though.
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
My emuNAND is under usb:/nands/default though.

That might be too long. "usb:\nands\default\title\00010001\00000000\content\00000000.app" (an example path to a banner) would be 63 characters.

If you rename the folder to "/nands/d/" and change the path in the loader it should cache the banners.

I included the path length fix in a patch I posted for Cyan last month but he hasn't integrated it yet.
 

VashTS

Beat it, son
Member
Joined
Mar 14, 2009
Messages
4,308
Trophies
1
Age
39
Location
Upstate NY
XP
3,756
Country
United States
That might be too long. "usb:\nands\default\title\00010001\00000000\content\00000000.app" (an example path to a banner) would be 63 characters.

If you rename the folder to "/nands/d/" and change the path in the loader it should cache the banners.

I included the path length fix in a patch I posted for Cyan last month but he hasn't integrated it yet.

Ah ok gotcha, thanks for clarifying.
 

HolySorcerer

New Member
Newbie
Joined
Oct 29, 2017
Messages
4
Trophies
0
Age
38
XP
42
Country
United States
I'm trying to get this working after following this guide (gbatemp.net/threads/the-definitive-vwii-hacking-guide.425852/#7), but I'm having nothing but problems. Currently, I have a fat32 drive in usb 0, but when launching USB Loader GX it just hangs on Reinitializing devices. I have switched it over to use ios 58, but I just can not for the life of me figure out why it is not working. I'm using an identical drive to store WiiU games, which works just fine, but the vWii just won't take it.

Any suggestions for troubleshooting?
 

GreyWolf

Well-Known Member
Member
Joined
Mar 2, 2015
Messages
5,399
Trophies
0
Age
54
XP
1,516
Country
United States
I'm trying to get this working after following this guide (gbatemp.net/threads/the-definitive-vwii-hacking-guide.425852/#7), but I'm having nothing but problems. Currently, I have a fat32 drive in usb 0, but when launching USB Loader GX it just hangs on Reinitializing devices. I have switched it over to use ios 58, but I just can not for the life of me figure out why it is not working. I'm using an identical drive to store WiiU games, which works just fine, but the vWii just won't take it.

Any suggestions for troubleshooting?

What kind of drive is it?
 

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
Today I had some free time :D

finally backup'd my PC, updated it, dusted it. (don't want to lose anything like 6 months ago)
Then I uploaded the patch greywolf sent me for USBLoaderGX 1264 !

I don't like the fact I didn't test it myself, but another user reported no issue with his FAT (SD card/usb).
Let me know if it's crashing/unstable.
if it's working fine, I'll make this version the default on sourceforge too.

USBLoaderGX r1265

* Added 2 new Nintendont settings (CC Rumble and IPL choices). (Greywolf)
* Updated all the sources to compile with devkitPPC r28 and r29. (Greywolf)
* Fixed loading banners from EmuNAND with a long path. (Greywolf)
* Updated Libcustomfat to 1.1.1 + Ustealth. (Greywolf, Cyan)
* Added support for Open source HBC TitleID.

New library package available on sourceforge to update your libogc and portlib folders.
* Updated devkitpro to DevkitPPC r29-1, libogc 1.8.16
* Updated Libvorbis in devkitpro libogc. (Greywolf)
* Updated libfat in devkitpro libogc to 1.1.1 + Ustealth patch


PS: 1266 is exactly the same as 1265. If you compile it yourself, please use r1266.


what I want to do next:
* prevent wii game source from being disabled when USB not detected (it's an old feature, back when there were no gamecube support)
* add wiiu gamepad support for WiiU WiiVC, at least it could be used as nintendont frontend for gamecube on SD card.
 
Last edited by Cyan,

Uupo03

Member
Newcomer
Joined
Jan 29, 2017
Messages
13
Trophies
0
Age
105
XP
64
Country
Finland
Today I had some free time :D

finally backup'd my PC, updated it, dusted it. (don't want to lose anything like 6 months ago)
Then I uploaded the patch greywolf sent me for USBLoaderGX 1264 !

I don't like the fact I didn't test it myself, but another user reported no issue with his FAT (SD card/usb).
Let me know if it's crashing/unstable.
if it's working fine, I'll make this version the default on sourceforge too.

USBLoaderGX r1265

* Added 2 new Nintendont settings (CC Rumble and IPL choices). (Greywolf)
* Updated all the sources to compile with devkitPPC r28 and r29. (Greywolf)
* Fixed loading banners from EmuNAND with a long path. (Greywolf)
* Updated Libcustomfat to 1.1.1 + Ustealth. (Greywolf, Cyan)
* Added support for Open source HBC TitleID.

New library package available on sourceforge to update your libogc and portlib folders.
* Updated devkitpro to DevkitPPC r29-1, libogc 1.8.16
* Updated Libvorbis in devkitpro libogc. (Greywolf)
* Updated libfat in devkitpro libogc to 1.1.1 + Ustealth patch


PS: 1266 is exactly the same as 1265. If you compile it yourself, please use r1266.


what I want to do next:
* prevent wii game source from being disabled when USB not detected (it's an old feature, back when there were no gamecube support)
* add wiiu gamepad support for WiiU WiiVC, at least it could be used as nintendont frontend for gamecube on SD card.

hey, this update is nice, and seems to work fine! but i have a problem, nintendont works just fine if i just load up a game through it but if i use usbloader gx to launch a gc game (using nintendont) some of my settings dont "work" so when the game boots its not fullscreen. im using the latest commit of nintendont, if i need an older commit, can you tell me which one
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Thank you Cyan and GreyWolf for the updates. I am also interested in using USBLoaderGX as a frontend for nintendont and I did some extensive testing today with r1265 regarding WiiU WiiVC support. This was tested on a Wii U on 5.5.1 with a freshly formatted FAT32 microSD with only USBLoaderGX and Nintendont installed.

Nintendont 5.479 (Oct 30th)


Scenario 1: WiiVC USBLoaderGX Forwarder w/ Gamepad Patch (Control)

a. USB Loader GX forwarder boots, GameCube games correctly displayed in loader, Wiimote used to select game to start in USBLoaderGX, Game starts via Nintendont and works with gamepad support, ADDITIONALLY hot plugging/swapping GameCube Adapter after the game loads adds GC ports 2-4
Everything works as expected if the Official GameCube Adapter is disconnected while USBLoaderGX is being used.
b. USB Loader GX forwarder boots, booted nintendont using in-app homebrew loader, selected GameCube game in Nintendont, Game starts and works with gamepad, ADDITIONALLY hot plugging/swapping GameCube Adapter adds GC ports 2-4.
This verifies that the fw.img patch used for the USBLoaderGX forwarder is functioning properly and is not causing a conflict with the GameCube Adapter.

Scenario 2: WiiVC USBLoaderGX Forwarder w/ Gamepad Patch + GCN Adapter Plugged In (GameCube Adapter Test)


a. USB Loader GX forwarder boots, GameCube games correctly displayed in USBLoaderGX, Wiimote used to select game to start in USBLoaderGX, black screen (necessitates power cable unplug)
Deleting the gamecube memory card will result in Nintendont booting JUST long enough to create a new memory card before locking up the system.
This is Scenario 1a with the addition of having the Official GameCube adapter plugged into any USB port since boot.
b. USB Loader GX forwarder boots, booted nintendont using in-app homebrew loader, selected GameCube game in Nintendont with GameCube controller or Gamepad, game boots, Gamepad works for port 1 and GameCube works for ports 2-4.
This is Scenario 1b with the addition of having the Official GameCube adapter plugged into any USB port since boot. This implies that nintendont handles the Official GameCube adapter properly even when not hotplugged.
Scenario 3: WiiVC USBLoaderGX Forwarder in Wii Remote Mode w/ GCN Adapter Plugged In

a. USB Loader GX forwarder boots, GameCube games correctly displayed in loader, Wiimote used to select game to start in USBLoaderGX, black screen (necessitates power cable unplug)
This is the identical setup/configuration to Scenario 2a but with Gamepad support disabled to rule out an incompatibility with that particular mode.
b. USB Loader GX forwarder boots, booted nintendont using in-app homebrew loader, selected GameCube game in Nintendont with GameCube controller, game boots, GameCube controllers work for ports 1-4.
This is the identical setup/configuration to Scenario 2b but with Gamepad support disabled to rule out an incompatibility with that particular mode.

5.455 (Sept 16th)



This version is immediately before an update was pushed for HID controller support. While the GCN Adapter is not supported, it did not prevent USBLoaderGX/Nintendont from completing the handshake.

WiiVC USBLoaderGX Forwarder w/ Gamepad Patch + GCN Adapter Plugged In

USB Loader GX forwarder boots, GameCube games correctly displayed in loader, Wiimote used to select game to start in USBLoaderGX, Game starts via Nintendont and works with gamepad support, GCN ports are not functional (Expected behavior)

USB Loader GX forwarder boots, booted nintendont using in-app homebrew loader, selected GameCube game in Nintendont with GameCube controller, game boots, GCN NOT available in menu or game (Expected)



WiiVC USBLoaderGX Forwarder in Wii Remote Mode w/ GCN Adapter Plugged In

USB Loader GX forwarder boots, GameCube games correctly displayed in loader, Wiimote used to select game to start in USBLoaderGX, Game starts via Nintendont and works with gamepad support, GCN ports are not functional (Expected behavior)

USB Loader GX forwarder boots, booted nintendont using in-app homebrew loader, selected GameCube game in Nintendont with GameCube controller, game boots, GCN NOT available in menu or game (Expected)


I have no idea if any of this is useful information or if this is actually a USBLoaderGX or Nintendont issue. I am happy to run more tests! Just let me know.
 
Last edited by JacobM,
  • Like
Reactions: froggydarren

wicksand420

Well-Known Member
Member
Joined
Nov 13, 2016
Messages
2,787
Trophies
1
Age
39
XP
2,295
Country
United States
Should usb loader must work without instaling cISO?
no, you need cios's to play wii games from usbloader gx, if you make a forwarder with the wii vc script, and include the usbloader gx dol, you can use usbloader gx as a front end for nintendont, which doesn't require a cios
 
  • Like
Reactions: gix222

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
Thanks for the tests, though I don't understand these reports :
USB Loader GX forwarder, black screen following game selection
are you trying to launch Wii games ?
Wii games will not work if you launch the loader from a WiiU WiiVC, as it's blocked into patched fw.img (cIOS255) and it can't reload to slot249 to get USB access.
so, this is the normal behavior.

Launching nintendont is the only usable feature when using WiiU WiiVC, so if it works fine then all is good with this version.
You didn't mention if the WiiU Gamepad works inside the loader.
I didn't add the WiiU Gamepad library yet, but maybe it's enough with the fw.img patch to replace the ClassicController?
I will add the proper support for it.
 
  • Like
Reactions: wicksand420

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
600
Country
United States
Thanks for the tests, though I don't understand these reports :

are you trying to launch Wii games ?
Wii games will not work if you launch the loader from a WiiU WiiVC, as it's blocked into patched fw.img (cIOS255) and it can't reload to slot249 to get USB access.
so, this is the normal behavior.

Launching nintendont is the only usable feature when using WiiU WiiVC, so if it works fine then all is good with this version.
You didn't mention if the WiiU Gamepad works inside the loader.
I didn't add the WiiU Gamepad library yet, but maybe it's enough with the fw.img patch to replace the ClassicController?
I will add the proper support for it.

Sorry for the confusing post.

1. I am trying to launch GameCube games not Wii games
2. I am launching GC games via Nintendont through the USBLoaderGX front end
3. WiiU Gamepad does not work inside of USBLoaderGX (expected) but the Gamepad begins to work if Nintendont doesn't lockup.
4. My report is trying to show that launching a GameCube game via a WiiU WiiVC USBLoaderGX Forwarder results in a system lockup when the Official GameCube Adapter is plugged into the Wii U. The game loads perfectly if:
1. The adapter is disconnected from the Wii U when launching a GameCube game from a WiiU WiiVC USBLoaderGX Forwarder
2. The game is launched via a WiiU WiiVC Nintendont Forwarder with the GameCube Adapter plugged in
3. Nintendont is launched from WiiU WiiVC USBLoaderGX Forwarder via the in-app homebrew launcher with the GameCube Adapter connected.
I hope that makes more sense. There are a lot of nested things here which make describing the working and non-working scenarios a bit convoluted.
 

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
ah, I see.
I didn't thought you tried launching nintendont using the internal homebrew launcher.

That's strange that not autobooting a game make the adapter work. it uses the same "launch homebrew using IOS58" function if I remember correctly, except it send additional arguments for nintendont settings.
Could you try to disable the "nintendont autoboot" in the global setting and launch a game with the adapter connected?

another thing you can try is 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 don't know yet if it's a bug in the loader or in nintendont. we will see with your result.
 
Last edited by Cyan,

wicksand420

Well-Known Member
Member
Joined
Nov 13, 2016
Messages
2,787
Trophies
1
Age
39
XP
2,295
Country
United States
Sorry for the confusing post.

1. I am trying to launch GameCube games not Wii games
2. I am launching GC games via Nintendont through the USBLoaderGX front end
3. WiiU Gamepad does not work inside of USBLoaderGX (expected) but the Gamepad begins to work if Nintendont doesn't lockup.
4. My report is trying to show that launching a GameCube game via a WiiU WiiVC USBLoaderGX Forwarder results in a system lockup when the Official GameCube Adapter is plugged into the Wii U. The game loads perfectly if:
1. The adapter is disconnected from the Wii U when launching a GameCube game from a WiiU WiiVC USBLoaderGX Forwarder
2. The game is launched via a WiiU WiiVC Nintendont Forwarder with the GameCube Adapter plugged in
3. Nintendont is launched from WiiU WiiVC USBLoaderGX Forwarder via the in-app homebrew launcher with the GameCube Adapter connected.
I hope that makes more sense. There are a lot of nested things here which make describing the working and non-working scenarios a bit convoluted.
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
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @OctoAori20, Thank you. Hope you're in good spirits today like I am. :)