Hacking USB Loader GX

  • Thread starter cyrex
  • Start date
  • Views 7,167,095
  • Replies 29,363
  • Likes 48

Badablek

Well-Known Member
Member
Joined
Jan 23, 2006
Messages
517
Trophies
1
Age
43
XP
2,918
Country
France

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 also don't like the idea that the loader is installing wad files to realNAND/SD.
On emuNAND I'm fine with it, it will never brick the Wii. I don't want the users to reject their brick fault on the loader or developer.
It already happened once with USBLoaderGX (with 2.x) because users didn't use the Wii correctly. I don't want to be responsible.
If I add a wad manager, it will be for Full channel auto-updater only, not to install Wads by the user.

I never wanted to use auto-DIOS MIOS (Lite) wad installer either for the same reason.
See what the users are installing on their wiiU ? BC and MIOS because they are using old version of wiiflow with no console detection and it let the user install Wii IOS to vWii.

When updating USB Loader GX, how do I know which IOS version to use. There are 3 files in the 7zip folder. IOS222, IOS249 and IOS250. I did do some searching and if I read it correctly you can use any of them and they should work but it would just take an extra second or two to load up if you used the wrong one. I've always just used IOS249 and never had any problems. I'm just curious to know a more in depth explanation as to why one would be better than the other and who would benefit from using them if they all in fact work the same.
You are right, it's all the same thing. You can even choose a different version to load by editing your meta.xml if you want a version with 253 for example.
When I compile, I release 249/250/222 because it was historically what the users used as main IOS. I'm not sure if 222 is still used as default, but I still provide it just in case a user want it.



To understand the difference:
When you launch a homebrew, if you want USB/SD/NAND/hardware access you need to use an IOS with hardware capability (cIOS or ahb_access).
You can use either IOS58, or a cIOS to get access to all the devices.
In USBLoaderGX, the user can select the IOS he wants to use in the loader's settings.

When you load USBLoaderGX if first reload to the default IOS (the one you find in the package: 249/222/250), to get access to SD/USB, then once access is possible it loads the config file.
So if you use version 249, but in the config file there's a different "default" IOS that you want to use (for example 250 because you like that slot, or has a user defined setup), then the loader will reload the cIOS again. it takes 2 seconds.

HBC > reload IOS to build slot (2 seconds) > mount device > check .cfg file > reload IOS if needed (2 seconds) > continue loading the loader

HBC > reload IOS 249 > mount SD > check Cfg > user want 249 > continue loading
HBC >reload IOS 249 > mount SD > check Cfg > user want 250 > reload IOS 250 > continue loading

Look at my setup in my signature, I have rev17 in slot249, and d2x base 56 in slot 250.
I use slot 250 by default for USBLoaderGX, but I want to keep rev17 in slot 249 for compatibility reason with old homebrew.
I can tell USBLoaderGX to reload to 250 directly by using two methods :
- Use the build 250
HBC > reload IOS 250 > mount SD > check cfg > user want 250 > continue loading
or
- define the IOS I want in meta.xml
HBC > read meta.xml argument and find 250 > reload IOS requested by meta.xml > mount SD > check cfg > user want 250 > continue loading
or
HBC > read meta.xml argument and find 58 > mount SD > check cfg > user want 58 > continue loading

The last one is even faster, as HBC is already running on IOS58; no reloading is necessary to use the loader.
 

Badablek

Well-Known Member
Member
Joined
Jan 23, 2006
Messages
517
Trophies
1
Age
43
XP
2,918
Country
France
I never wanted to use auto-DIOS MIOS (Lite) wad installer either for the same reason.

And that's fine ;)
a loader should NEVER EVER install anything in the real NAND (like a cmIOS or even a cIOS). If someone wants to play GC games on HDD, then he can install Dios Mios himself. Or Dios Mios Lite for "SD gaming".


If one day you add this "feature", please make it optionnal ^____^


BTW Cyan, it seems that USBLGX is not happy on vWii when a SDcard is inserted....it takes a long long time before it loads. Same build works nicely on Wii. (it happens since some rev...not only on rev1229)
 

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 always load from SD card and never had long loading time on vWii.
Last time I tested it was on 1208-1210, but I don't think I touched anything related to SD card since then.
I don't have cIOS on vWii, I only tried IOS58 + Channels / Gamecube launcher.

I have some questions:
You launch the loader from the forwarder or from HBC?
Loader is on USB with SD inserted, or on SD?

It has always been slow, or only on recent revisions?

On Wii, the loader is loader verrrry slow when the SD card is write protected.
maybe there's not enough check on SD access before trying to write settings or files.
 

Badablek

Well-Known Member
Member
Joined
Jan 23, 2006
Messages
517
Trophies
1
Age
43
XP
2,918
Country
France
I will recheck my setup on vWii, what i'm sure of :

- I always load USBLGX from my HDD (FAT32 partition, stealth)
- I start it with the official forwarder
- My SD card is only for hombrews like scummvm, snes9xgx (NO loader, NO emuNAND) and is not write protected


with that setup, USBLGX boots quickly BUT it hangs at loading (when loading SD or HDD content, don't remember exactly)


I think this kind of behavior started with the revision where the "load from SD" was added as an argument to meta.xml
(I have to verify this, not 100% sure)


EDIT : hmm, it seems I made a mistake...I tried again today and everything is loading great.
I will make more tests, maybe it happens only when the HDD is stealth
 

Badablek

Well-Known Member
Member
Joined
Jan 23, 2006
Messages
517
Trophies
1
Age
43
XP
2,918
Country
France
nevermind

it seems this behavior comes from my microSD card + SD adapter, it takes at least 10 seconds to initalize with USBLGX.
with a fast SD card > no problem at all.


sorry :moogle:
 

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 doing the tests :)
And there no problem with reporting your issues. if you find something, it's better to report it.


I asked about the forwarder+Loader on USB because another user reported an issue.
For him, it works fine with HBC+loader on USB, but doesn't work with Forwarder+USB.
I really don't know why he has this issue, other users don't have any problem. So I asked if someone else had the same issue, just in case we could find what's causing it.
 

Nakula

Member
Newcomer
Joined
Jul 25, 2014
Messages
18
Trophies
0
Age
34
XP
62
Country
United States
pretty strange issue with USB Loader GX version r1208. i can not get dios mios to work properly on it no matter what i do. CFG usb loader works perfectly. force ntsc and thats it, it works. forcing ntsc seems to do nothing on USBLGX. i tried different settings combinations like use global on the actual game, and change the global to force ntsc. i tried DML video on auto/disc default/etc. nothing will work. its like the force ntsc feature is broken on USBLGX cause on CFG loader i literally change the 1 setting and everything works perfectly. anyone got any tips?
 

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 changed/fixed/broke the video settings few times after 3.0 1180.
You should try to update the loader (internally to 1226, or manually to 1229).

It's possible I still broke it last time I updated it (I added Autodetection for PAL-M)
 

Clutz450

Well-Known Member
Member
Joined
Jul 20, 2013
Messages
778
Trophies
1
Age
41
XP
1,181
Country
United States
You are right, it's all the same thing. You can even choose a different version to load by editing your meta.xml if you want a version with 253 for example.
When I compile, I release 249/250/222 because it was historically what the users used as main IOS. I'm not sure if 222 is still used as default, but I still provide it just in case a user want it.



To understand the difference:......



Thanks so much for the indepth explanation. A bit over my head but I'm trying to learn and understand more about it. This helps a lot.
 

Nakula

Member
Newcomer
Joined
Jul 25, 2014
Messages
18
Trophies
0
Age
34
XP
62
Country
United States
I'm running r1229 and DM 2.11. It seems that USB loader GX still cannot force NTSC for gamecube PAL games. CFG loader does it perfectly. i was indeed able to get USA released games (NTSC native) to work with everything simply set to auto, but PAL games will flicker/settle on 60hz/and then remain in black and white. if i try to force NTSC for PAL games i dont even get past the DIOS MIOS logo. if CFG loader can do it why cant GX? i like GX so much more in so many ways. this would be the only thing separating it from the best usb loader until its fixed
 

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
it's not that CFG can and GX can't, it's more that the settings are different and there's probably a bug somewhere.
GX can too, it just need to be fixed if there's an error in the code.

when using Auto in GX, it's checking the region of the game (PAL/NTSC) and the Wii's setup (576i/480i/480p) and combine both, then tells DM which setting it's set to.
If there's a problem with the detection or setup sent to DM, we will need to debug it.
 

Magnus87

Well-Known Member
Member
Joined
Apr 28, 2013
Messages
397
Trophies
1
XP
1,510
Country
Argentina
I also don't like the idea that the loader is installing wad files to realNAND/SD.
On emuNAND I'm fine with it, it will never brick the Wii. I don't want the users to reject their brick fault on the loader or developer.
It already happened once with USBLoaderGX (with 2.x) because users didn't use the Wii correctly. I don't want to be responsible.
If I add a wad manager, it will be for Full channel auto-updater only, not to install Wads by the user.


Relax, Cyan!

You will never be responsible for Wii Bricks. The user is it.

If you warn about a possible brick and you give to choose between install or not.

I really want to install directly to SDmenu.
 

Nakula

Member
Newcomer
Joined
Jul 25, 2014
Messages
18
Trophies
0
Age
34
XP
62
Country
United States
Auto is not the problem here. your explanation of how it works seems to be working great. the problem is for people who do not have TVs that can decode PAL. the usual solution to this is simple. force NTSC. works like a charm in CFG loader. but in GX it crashes the game after DIOS MIOS loads. something in the code relating to DIOS MIOS and force NTSC is bugged. in the past i have gotten force NTSC to work on GX, but only with DIOS MIOS LITE. so i believe it is indeed something between the interaction of DM and forcing NTSC on a PAL game
 

sj33

Well-Known Member
Member
Joined
Oct 22, 2013
Messages
4,072
Trophies
2
XP
4,726
Country
Japan
Do you think USB Loader GX could be updated to allow individual games to load a specific version of Nintendont? So for example, if I want a game to load r1029, I name it something like r1029.dol and configure the individual game to load that specific version?

Given that new revisions of Nintendont have a tendency to break some games that previously worked, this would be a nice way of being able to whichever version works best with that specific game.
 
  • Like
Reactions: VashTS

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
Do you think USB Loader GX could be updated to allow individual games to load a specific version of Nintendont? So for example, if I want a game to load r1029, I name it something like r1029.dol and configure the individual game to load that specific version?

Given that new revisions of Nintendont have a tendency to break some games that previously worked, this would be a nice way of being able to whichever version works best with that specific game.


I mentioned this for Wiiflow too but I think Fix is just too busy :(

that would be sweet Cyan! a testing version and a stable version would be good enough for me! I'd set all my games that work fine to the stable and the then alternate the ones that don't work.
 

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'm using an almost identical method, but not "per game".

I keep multiple version of nintendont in subfolders.
apps/nintendont/v1.80/boot.dol
apps/nintendont/v1.100/boot.dol
etc.
I switch the path when I need to test an old version.

But a setting per game is possible, we need to define a way to do it easily.
either you create and rename all the boot.dol yourself in the same folder (r80.dol, r81.dol, etc.)
or you put boot.dol or loader.dol in /r80/ sub-folder.

I prefer the second solution, as nintendont create a meta.xml in the dol folder, and you can easilly switch the default nintendont folder in the settings to point to the latest stable version.
The second solution is also easier to setup in USBLoaderGX. I can add a "Nintendont folder" in individual game settings. either you use Global, or you define a different one. (it works like this with emuNAND)


What would be useful is that the loader download/create the subfolders automatically (I can detect the latest version number when updating), or even choose an old version to download.
A choice when downloading ? "Where to save the file? apps/nintendont/ or Apps/nintendont/rxxx"
But for now, only the path in game setting will be enough.
I'll try to do it soon, but I'm not home for 15 days starting next week.
 
  • Like
Reactions: VashTS

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
I'm using an almost identical method, but not "per game".

I keep multiple version of nintendont in subfolders.
apps/nintendont/v1.80/boot.dol
apps/nintendont/v1.100/boot.dol
etc.
I switch the path when I need to test an old version.

But a setting per game is possible, we need to define a way to do it easily.
either you create and rename all the boot.dol yourself in the same folder (r80.dol, r81.dol, etc.)
or you put boot.dol or loader.dol in /r80/ sub-folder.

I prefer the second solution, as nintendont create a meta.xml in the dol folder, and you can easilly switch the default nintendont folder in the settings to point to the latest stable version.
The second solution is also easier to setup in USBLoaderGX. I can add a "Nintendont folder" in individual game settings. either you use Global, or you define a different one. (it works like this with emuNAND)


What would be useful is that the loader download/create the subfolders automatically (I can detect the latest version number when updating), or even choose an old version to download.
A choice when downloading ? "Where to save the file? apps/nintendont/ or Apps/nintendont/rxxx"
But for now, only the path in game setting will be enough.
I'll try to do it soon, but I'm not home for 15 days starting next week.


Thanks for considering it! Whichever way works for you is fine with me and I'm sure others agree :) I like the folder idea.
 

sj33

Well-Known Member
Member
Joined
Oct 22, 2013
Messages
4,072
Trophies
2
XP
4,726
Country
Japan
Thanks for considering the idea! Whatever solution you prefer is fine with me! The rationale behind the second solution makes sense.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://www.ebay.com/itm/386617469929?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=2T8UwYf_Qse&...