Hacking USB Loader GX

  • Thread starter cyrex
  • Start date
  • Views 7,221,482
  • Replies 29,375
  • Likes 48

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
Speaking of which, I'd like to ask you, now that I have all of my games installed successfully on my new 2TB WD HDD I'm seriously tempted to try to softmod my Wii U (I figured aside from using real GC controllers and MCs there should be very little to lose here, I mean EmuNAND works fine on Wii U, right?) so I might go ahead and ask you, when using a hard drive for Wii games and such should I also connect it to a y-cable like the one attached to the Wii U or not?
Sorry to get your hype down, but Wii NAND and vWii NAND are different.
You will have to create a new dump and reinstall ALL your channels to use on vWii.

Also, you quoted the "UStealth" reply, so I guess you want to use your HDD with that feature too.
I don't remember if UStealth drives are compatible with neek2o, you might have to disable Ustealth signature before launching a channel with neek mode.
If you want to launch EmuNAND channel in cIOS mode, you need a special modded version of d2x cIOS r52 (Note that r53 is NOT working with Ustealth, only r52mod is)

Now, if you are ready to move to vWii even knowing these issues, yes you will need a Y-cable or an externally powered drive.

It's me again using d2x v10 base 57 on 249 trying to load bust a move with emunand on a fat32 partition WBFS folder and it is giving me a black screen. I can't find the answer anywhere so I'm bringing it up again. I'm also forcing NTSC tv mode. Some other games work.
Maybe it's a bad dump, or it requires a special video mode setting. (you said you are forcing it to NTSC, is the game NTSC? if it's PAL, you need to force PAL. you need to force the "game region" not your console region)
Maybe it's just not working with emuNAND cIOS and requires emuNAND NEEK.
 

sonictopfan

Well-Known Member
Member
Joined
Mar 2, 2010
Messages
2,702
Trophies
1
XP
1,948
Country
Sorry to get your hype down, but Wii NAND and vWii NAND are different.
You will have to create a new dump and reinstall ALL your channels to use on vWii.
I actually expected that but since recreating it wasn't difficult and didn't take as long as it did the first time with USB Loader GX being updated and most of the issues were fixed, I don't mind recreating it sometime!

Also, you quoted the "UStealth" reply, so I guess you want to use your HDD with that feature too.
I don't remember if UStealth drives are compatible with neek2o, you might have to disable Ustealth signature before launching a channel with neek mode.
If you want to launch EmuNAND channel in cIOS mode, you need a special modded version of d2x cIOS r52 (Note that r53 is NOT working with Ustealth, only r52mod is)

Now, if you are ready to move to vWii even knowing these issues, yes you will need a Y-cable or an externally powered drive.

Now I'm back to being suspecious, it's bad enough switching from the superios GC controller to the regular Wii controller Pro but now EmuNAND may have issues, do you recommend I make the transition or wait a little longer?
 
Last edited by sonictopfan,

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
waiting will not help.
it's up to you to choose if you want to play on WiiU or not.
I recommend you don't wait "a little longer" but just don't wait anything and keep your Wii for Wii and gamecube, WiiU for WiiU games.
In my opinion, users with a Wii should use their Wii instead of WiiU vWii.
it's faster to boot, easier to reboot and have advantage with priiloader to return to the loader when exiting neek.

vWii is more like a concession/compromise for users without a Wii to still play old games in an emulated environment, and with more issues than fixes.
You don't have access to all the settings or data, don't have native gamecube controller, need more hardware (y-cable, need ustealth to prevent format message, less compatibility with usb3.0 drives, etc.), and it's more dangerous to mess with.
I see more wrong than good, but some users still prefer having headache setting their system and hardware to use a single console than keeping a good and better working setup with two consoles.
 

goodeddie

Well-Known Member
Newcomer
Joined
Mar 10, 2016
Messages
68
Trophies
0
Age
35
XP
88
Country
United States
Sorry to get your hype down, but Wii NAND and vWii NAND are different.
You will have to create a new dump and reinstall ALL your channels to use on vWii.

Also, you quoted the "UStealth" reply, so I guess you want to use your HDD with that feature too.
I don't remember if UStealth drives are compatible with neek2o, you might have to disable Ustealth signature before launching a channel with neek mode.
If you want to launch EmuNAND channel in cIOS mode, you need a special modded version of d2x cIOS r52 (Note that r53 is NOT working with Ustealth, only r52mod is)

Now, if you are ready to move to vWii even knowing these issues, yes you will need a Y-cable or an externally powered drive.


Maybe it's a bad dump, or it requires a special video mode setting. (you said you are forcing it to NTSC, is the game NTSC? if it's PAL, you need to force PAL. you need to force the "game region" not your console region)
Maybe it's just not working with emuNAND cIOS and requires emuNAND NEEK.

When I use disc default, it works on pal but the screen is black and white and out of ratio. I guess I'll have to get the NTSC version somehow.

Edit: I forced NTSC and set Dol Video Patch to All and the color is fine now except the bottom of the screen is cut off. Bust a move is cut off but Tamagotchi has a good ratio and is working now. Maybe Bust a move is bad WBFS. I tried forcing the aspect ratio but it doesn't work. Any suggestions?
 
Last edited by goodeddie,

tswntk

Well-Known Member
Member
Joined
Aug 6, 2012
Messages
1,018
Trophies
1
XP
2,393
Country
Switzerland
Well, I tested an old version which just says v3.0 in the credit page, so I assume it is r1180.

I have tested launching Wiixplorer and it can't detect the HDD if it was set to boot ios58. Works find if reloading into cios249.
I have tested launching Wiiflow. works fine if apps is in SD:\ but won't start Wiiflow if apps is in HDD - same behavior as r1260

@GreyWolf and @Cyan
I have made some progress on this problem:

I can see that the Channel Setting menu is a bit different from Wii games' setting menu but they both allow only "Game IOS" setting to be "global" or cios 200~255
so I manually edit "GXGameSettings.cfg" and set the "Game IOS" to 58
and now Wiixplorer and Wiiflow forwarder (with Wiiflow apps in HDD) work with no problem.

From studying the source code, I believe ULGX can detect the IOS used by the Channels, so the best way to fix it is to allow a "Channel default IOS" setting in the "Game IOS" setting.
Or simply remove the "Game IOS" (and "Block IOS Reload" ?) settings for real nand channels and use their own default?

Not sure if this will affect Emunand channels or VC/Wiiwares though.
 
Last edited by tswntk,

elshiftos

Member
Newcomer
Joined
Mar 12, 2016
Messages
11
Trophies
0
Age
54
XP
68
Country
United Kingdom
Is there any way of changing the way GC icons (not sure of the term, could be banners or channels) are displayed in the main GX screen? At the moment they cycle between the game image and the GC logo, but the ratio is such that I find myself having to wait for the game to show, then quickly scanning through to find the game I want before it cycles back to the GC logo again.

Hope this makes sense. I can upload an image or video clip if necessary

Thanks
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
From studying the source code, I believe ULGX can detect the IOS used by the Channels, so the best way to fix it is to allow a "Channel default IOS" setting in the "Game IOS" setting.
Or simply remove the "Game IOS" (and "Block IOS Reload" ?) settings for real nand channels and use their own default?
I planed to add the "use requested IOS" for channels.
I don't know why it wasn't implemented already as the code exists, but I will do that and it will fix channels launching installed on NAND. (not emuNAND)

I can upload an image or video clip if necessary
this is part of the banner animation, there's no way to change it without editing the banner itself.
What you can do is download new custom animated banners for all your gamecube games.

1. display gamecube games
2. press the 1 or 2 button on Wiimote to open the cover download menu
3. select "gamecube banners" and download them.
all your gamecube games will now have new banners, like the Wii games. no more "savegame icon" as banner.
 

tswntk

Well-Known Member
Member
Joined
Aug 6, 2012
Messages
1,018
Trophies
1
XP
2,393
Country
Switzerland
I planed to add the "use requested IOS" for channels.
I don't know why it wasn't implemented already as the code exists, but I will do that and it will fix channels launching installed on NAND. (not emuNAND)

Have you started the changes already? If not, I just finished my own codes if you are interested

Here is what I have done:
1. changed rev to "1261 tswntk" - just so I won't be confused myself
2. In the setting->game load menu:
if GameConfig.ios =-1, it will now show "-1 (Use global)",
click on it; if its a Real Nand channel, it will change to "0 (Channel Default)" - GameConfig.ios = 0
click again or if its not a Real Nand channel, it will show the numpad.
There is no way to return to "-1 (Use global)" or "0 (Channel Default)" unless you manually input -1/0 in the numpad

There is one problem:
I can use Channels::GetRequestedIOS(Header->tid) inside GameLoadSM.cpp and it correctly return the ios used by my forwarder channels.
But inside GameBooter.cpp, it doesn't work. (tried Channels::GetRequestedIOS(gameHdr->tid) and Channels::GetRequestedIOS(gameHeader.tid). So it is forced as iosChoice = 58 for now.
I am sure you can rectify it easily.

PS. Occasionally, ULGX will not recognize my HDD but the 20 second countdown is stationary at 19 sec...
I have check StartUpProcess.cpp and the code is:
messageTxt->SetTextf("Waiting for HDD: %i sec left\n", 20-(int)countDown.elapsed());
Draw();
usleep(50000);

If I am not mistaken, it means 50 second sleep (longer than the 20 sec countdown), so I changed it to (500) but can't test it as it is a rare occurrence.


I have attached the patch file for your reference but the forum does not allow me to upload a file with ext .patch, so I just rename it to .patch.txt

with my coding skill, I am sure there is a lot of rooms for improvement.

Edit: just discovered a minor mistake:
file:\source\usbloaderGameBooter.cpp line 302 should be
if(iosChoice == CHANNELDEFAULT) instead of
if(iosChoice == 0)
they both work but not a good practice.
 

Attachments

  • ulgx-tswntk.patch.txt
    42.5 KB · Views: 346
Last edited by tswntk,
  • Like
Reactions: Cyan

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
Thank you.
I will see what's the issue with gamebooter. but cycle with the setting is a good idea, and that's what I would have done (-1, 0, value)
I didn't check loader's sources since latest revision, I will have to get to it a little.

usleep(50000) = 500ms
 
  • Like
Reactions: Magnus87

tswntk

Well-Known Member
Member
Joined
Aug 6, 2012
Messages
1,018
Trophies
1
XP
2,393
Country
Switzerland
Thank you.
I will see what's the issue with gamebooter. but cycle with the setting is a good idea, and that's what I would have done (-1, 0, value)
I didn't check loader's sources since latest revision, I will have to get to it a little.

usleep(50000) = 500ms

yeah, I googled usleep and its in microsecond not millisecond. Don't understand why the countdown stops at 19 second.
So, you will have to undo that part if you apply my patch.

Edit:
ok, I thought of a way to test the countdown: unplug the HDD and then start ULGX.
Now the countdown works but I can swear, in rare occasions when I restart ULGX, the countdown stops at 19 sec (display only, still can press B to continue).
So usleep is not the problem. Some background threads that interrupts the countdown display? Hard to debug!
 
Last edited by tswntk,

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
yes, I already noticed the countdown to stop, probably stuck in initializing the hdd so it doesn't even reach the usleep command for the countdown. When the drive is init, it works and skip the countdown screen, so it's not "counting down but frozen", it's more like "not counting down until initialized".
I don't know why it freeze here. Maybe it's related to the issue detecting/initializing hdd some users have. But I already had the countdown froze bug on very old revisions too.

edit:
@tswntk
Thinking about the NAND channel IOS setting, I think it's best to use a single global option "use requested IOS for NAND channels".
the IOS setting could be hidden in the individual game menu when this setting is enabled.
I don't see a purpose allowing users to set a different IOS slot for channels installed on NAND.
Channels on emuNAND must use cIOS, but real NAND channels don't benefit from it. Or maybe I'm missing a possible use to set that option individually ?
a global one is enough in my opinion.
Though, using a global option means adding a new setting to the cfg file, while your method is only using a specific value from an existing entry. but it might confuse users to set that option one by one to all their channels. a global one is easier to switch and can even be forced by default on all new revisions, while using the IOS value "0" will not be set by default if a user already created an individual setting for that game which will have it set to 249.

I think I'll do it a global option, ON by default.
 

tswntk

Well-Known Member
Member
Joined
Aug 6, 2012
Messages
1,018
Trophies
1
XP
2,393
Country
Switzerland
yes, I already noticed the countdown to stop, probably stuck in initializing the hdd so it doesn't even reach the usleep command for the countdown. When the drive is init, it works and skip the countdown screen, so it's not "counting down but frozen", it's more like "not counting down until initialized".
I don't know why it freeze here. Maybe it's related to the issue detecting/initializing hdd some users have. But I already had the countdown froze bug on very old revisions too.

edit:
@tswntk
Thinking about the NAND channel IOS setting, I think it's best to use a single global option "use requested IOS for NAND channels".
the IOS setting could be hidden in the individual game menu when this setting is enabled.
I don't see a purpose allowing users to set a different IOS slot for channels installed on NAND.
Channels on emuNAND must use cIOS, but real NAND channels don't benefit from it. Or maybe I'm missing a possible use to set that option individually ?
a global one is enough in my opinion.
Though, using a global option means adding a new setting to the cfg file, while your method is only using a specific value from an existing entry. but it might confuse users to set that option one by one to all their channels. a global one is easier to switch and can even be forced by default on all new revisions, while using the IOS value "0" will not be set by default if a user already created an individual setting for that game which will have it set to 249.

I think I'll do it a global option, ON by default.

yes, I think a global option and remove the setting from"Game Load" setting menu for real nand channels is also a good idea.
I just tried to stay true with the original codes in case we need special treatments. And it is easier for me to add "simple" logics rather than creating a new setting ;). I am not all that familiar with C++ and ULGX libs.

edit: btw, I have also thought of adding a "use global", "Channel defauit" (now not need) buttons to numpad but then, we will need to rewrite the numpad function so that it will accept an additional parameter to signify who is calling.and add/remove the buttons accordingly and that will affect a number of calling functions too. Just an idea...
 
Last edited by tswntk,

bm123456

Well-Known Member
Member
Joined
Jun 7, 2011
Messages
576
Trophies
1
Age
46
Location
Houston
XP
1,312
Country
United States
Anyone have Just dance 2016 pal video not black and white with usb loader gx on a NTSC Wii? All video modes stay the same or ends up a black screen .
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
even when using "video dol patch" to ALL and video mode to force PAL ?
the dol patching is supposed to really force a video mode into a game, instead of just setting the console before launching it.
but some games are not working with all modes, even when patched into the dol.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
I'm not sure to understand the question.
Do you mean why the loader use its own custom FAT lib (from the lib folder) instead of the default fatlib from libogc ?

Our fatlib works with WBFS partitions. I think that's the only difference.
there's also the Ustealth support, etc. but it's not a big difference from libogc. it's just easier to have our own modded lib in a lib folder, than providing a libogc file to replace in devkitpro folder for all users trying to compile the loader.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
46
Location
Engine room, learning
XP
15,662
Country
France
I don't know how ULoader works/worked.
I never used it nor checked the sources.


You can check the difference by looking at libogc sources, and usbloadergx's fatlib sources.
there are updates applied to the one on usbgx (like 1.0.13) and updates to support NTFS, I don't know if the one in libogc has been updated.
But you should find the difference with the other changes, like wbfs fragmentation.
 

elshiftos

Member
Newcomer
Joined
Mar 12, 2016
Messages
11
Trophies
0
Age
54
XP
68
Country
United Kingdom
I planed to add the "use requested IOS" for channels.
I don't know why it wasn't implemented already as the code exists, but I will do that and it will fix channels launching installed on NAND. (not emuNAND)


this is part of the banner animation, there's no way to change it without editing the banner itself.
What you can do is download new custom animated banners for all your gamecube games.

1. display gamecube games
2. press the 1 or 2 button on Wiimote to open the cover download menu
3. select "gamecube banners" and download them.
all your gamecube games will now have new banners, like the Wii games. no more "savegame icon" as banner.

Thanks for the reply Cyan. While this did replace the original banners with custom versions, it didn't change their behaviour in that they still cycle between banner and GC logo.

Not the end of the world though - there are more important things to worry about :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Lol