Hacking USB Loader GX

  • Thread starter cyrex
  • Start date
  • Views 7,153,542
  • Replies 29,352
  • Likes 47

leseratte

Wiimmfi Team
Member
Joined
Jun 2, 2012
Messages
453
Trophies
1
XP
1,859
Country
Germany
@blackb0x @Cyan
Just wanted to ask if there are plans to merge the changes / fixed from the USB Loader GX Enhanced fork back into the official USB Loader GX release, or is that fork intended as a long-term fork, seeing that there haven't been many changes since around 2017?

Forking the USB-Loader GX to add more features is nice, but not many people will find a random fork of an USB-Loader unless specifically told; and it'd probably also be easier to support if all the improvements were merged into the main repository on sourceforge.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,648
Country
France
it would be nice, but I don't know if or when I'll get the time to merge or work on it again.
for now it's stalled, I made a copy on git to let others easily branch from it as they wish.
I didn't even follow what he did and what were the new enhanced features (if he added more since last year).

I can add a link to his github repository on the first post, like all other modded versions I know.

edit: ah, well, it's already there.
 
Last edited by Cyan,

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,545
Country
United Kingdom
@vbarros22 I replied to your private message, but I'll repeat it here.

In the settings menu I kept the setting named "Wiinnertag" so that it doesn't confuse people who follow the guides, although I might change this shortly. But if you're doing a fresh install (e.g. you delete your config file) then when you enable Wiinnertag it'll correctly link to RiiTag.

For me IOS 58 boots faster than cIOS 249, but if it's the opposite for you then you can go to the settings menu and change it to 249. But you'll also need to edit a few lines in the meta.xml file so that it actually uses it.

<release_date>20200710160000</release_date>
<arguments>
<arg>--ios=249</arg>
</arguments>

<ahb_access/>

@leseratte I plan to to support my fork through GitHub no matter what, since I'm not a fan of SourceForge.

I'm currently testing some changes and then I'll release another update in a few days.
 
Last edited by blackb0x,

igano

New Member
Newbie
Joined
Aug 20, 2020
Messages
2
Trophies
0
Age
39
XP
42
Country
Greece
Does anyone know how I can do this thing? I have USB Loader and Nintendont installed on a Wii. When I just use Nintendont and want to exit a Gamecube game I press R+Z+B+Down and it brings me back to Nintendont's game list. But when I use USB Loader in conjunction with Nintendont the same key combo just restarts the console. How can I make USB Loader return me to its game list instead of restarting? I asked this on wiihacks/r but didn't get an answer.
 

geoGolem

Well-Known Member
Member
Joined
Feb 18, 2012
Messages
170
Trophies
1
XP
1,276
Country
Canada
Does anyone know how I can do this thing? I have USB Loader and Nintendont installed on a Wii. When I just use Nintendont and want to exit a Gamecube game I press R+Z+B+Down and it brings me back to Nintendont's game list. But when I use USB Loader in conjunction with Nintendont the same key combo just restarts the console. How can I make USB Loader return me to its game list instead of restarting? I asked this on wiihacks/r but didn't get an answer.
I'm not sure but I am pretty sure you have to change the option in usbloaderGX, you can either change it on a global basis (for every game) or on a specific game basis. I can't remember what the option is specifically, but it is something like "return to" it is probably set to home menu, you'll want to set it to usbloader gx.

EDIT: I think you need a usbloaderGX forwarder wad installed to your home menu to make this work, since all it really does is return to the home menu then immediately and automatically launch that channel...

If you install a usbloaderGX forwarder WAD make sure you install the right one for your wii or vWII.
 
Last edited by geoGolem,

igano

New Member
Newbie
Joined
Aug 20, 2020
Messages
2
Trophies
0
Age
39
XP
42
Country
Greece
I'm not sure but I am pretty sure you have to change the option in usbloaderGX, you can either change it on a global basis (for every game) or on a specific game basis. I can't remember what the option is specifically, but it is something like "return to" it is probably set to home menu, you'll want to set it to usbloader gx.

EDIT: I think you need a usbloaderGX forwarder wad installed to your home menu to make this work, since all it really does is return to the home menu then immediately and automatically launch that channel...

If you install a usbloaderGX forwarder WAD make sure you install the right one for your wii or vWII.

Thank you very much! I installed the forwarder and now it works beautifully.
 

ukigh4ie

Well-Known Member
Member
Joined
Aug 27, 2020
Messages
155
Trophies
0
XP
562
Country
Germany
Hi @Cyan @blackb0x

I am trying to compile USB Loader GX in the container devkitpro/devkitppc:latest. The environment variable PORTLIBS contains two paths, so I adjusted the rule "export INCLUDE" in the Makefile accordingly. What I am still missing and is not part of the PORTLIBS are the libraries zlib and ntfs (can't find them in their GitHub repo either). What is the correct procedure? Where can I get them and how can I use them?

Code:
In file included from /source/source/ZipFile.cpp:39:
/source/source/ZipFile.h:31:10: fatal error: zip/unzip.h: No such file or directory
   31 | #include <zip/unzip.h>
      |          ^~~~~~~~~~~~~
compilation terminated.
 
Last edited by ukigh4ie,

ukigh4ie

Well-Known Member
Member
Joined
Aug 27, 2020
Messages
155
Trophies
0
XP
562
Country
Germany
@blackb0x
Thank you. Which version is needed and do you know if there is a docker container?

I just tried your enhanced version. It would be nice if one could create issues for it in your GitHub repo. This feature is probably disabled.

If the download from GeckoCodes.org doesn't provide a file, the one on the SD card will be deleted. This is not good.
 

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,545
Country
United Kingdom
Thank you. Which version is needed and do you know if there is a docker container?
You need devkitPPC r29, which you can find online. But there isn't a docker container for it.

I'm currently in the process of updating the code to work with newer versions of devkitPro.

I just tried your enhanced version. It would be nice if one could create issues for it in your GitHub repo. This feature is probably disabled.
I might enable the feature after my next release. I've currently got a few commits staged which fix some issues, so I wouldn't want reports for the issues that I've already fixed.

If the download from GeckoCodes.org doesn't provide a file, the one on the SD card will be deleted. This is not good.
That might be related to a bug that I've already fixed where the cheats for a game do exist on geckocodes.org, but because it can't validate the text file due to a UTF-8 BOM the file is removed.
 

JacobM

Well-Known Member
Member
Joined
Jun 16, 2017
Messages
242
Trophies
0
XP
599
Country
United States
I have no idea - but I might try and look into possibly porting some of this functionality into usbloaderGX:
https://github.com/Chadderz121/brainslug-wii
https://github.com/Chadderz121/wup-028-bslug

I have no idea if it is possible.. but it would be awesome to be able to get it to work.

That would be awesome if you manage to get brainslug working in one of the current generation loaders. Chadderz did once suggest that brainslug should be able to be extended for channels, but USB loader compatibility is currently unknown.

BrainSlug is just a disc loader, but the technology behind it would work with anything. It would just be a case of someone editing the disc loading section of the code to instead load a channel. The patching engine should be able to cope with that just fine.

A different implementation by @wilm0x42 for SSBB based on geckocodes initially seemed to be incompatible with USB Loaders due to cIOS limitations, but he has suggested recently that he is nearing the end of development for a version compatible with USB Loader GX. The developer has also suggested that it should be fairly easy to modify to increase game compatibility on an individual basis.

A new generation loader called BBLoader by @Aurelio is on the horizon based on a new patching technique that doesn't depend on the d2x cIOS or any traditional cIOS. It has been suggested that it will have riivolution support among other features and likely is the best bet for GCA adapter compatibility.
 
Last edited by JacobM,
  • Like
Reactions: geoGolem

geoGolem

Well-Known Member
Member
Joined
Feb 18, 2012
Messages
170
Trophies
1
XP
1,276
Country
Canada
That would be awesome if you manage to get brainslug working in one of the current generation loaders. Chadderz did once suggest that brainslug should be able to be extended for channels, but USB loader compatibility is currently unknown.



A different implementation by @wilm0x42 for SSBB based on geckocodes initially seemed to be incompatible with USB Loaders due to cIOS limitations, but he has suggested recently that he is nearing the end of development for a version compatible with USB Loader GX. The developer has also suggested that it should be fairly easy to modify to increase game compatibility on an individual basis.

A new generation loader called BBLoader by @Aurelio is on the horizon based on a new patching technique that doesn't depend on the d2x cIOS or any traditional cIOS. It has been suggested that it will have riivolution support among other features and likely is the best bet for GCA adapter compatibility.
I really am doubtful I will make any progress on this, but I find it interesting to look through the code etc. etc. Without knowing too much or looking too much in the code, if usb presents a challenge, i wonder if loading from sd card is any easier... I mean, if brainslug can load from disc drive and also can read/write to the sd card (as it does for the brainslug modules and logging etc.)--> i would think it might be possible to make it read an iso from the sd card instead of the disc (some kind of redirection).. alas I really have no idea what i am talking about, im just thinking out load.. if we could make it able to load an iso from sd card, we could make it sort of work with usbloaderGX by making USBLOADERGX (when the game option to load with brainslug is specified otherwise just load normally) first copy iso to preagreed place on SD card, before launching sdModifiedBrainSlugChannel...

i know its icky.. and like i said, i am just thinking out loud..

i am hopeful the other folks do make progress on their projects and eventually have a good release...

EDIT: I'm thinking somehow basically usbloaderGX could interact with Brainslug in a similar fashion to how it interacts with Nintendont... and in usbloaderGX there is just an option to choose to load normally (default) or load with Brainslug etc.
 
Last edited by geoGolem,

leseratte

Wiimmfi Team
Member
Joined
Jun 2, 2012
Messages
453
Trophies
1
XP
1,859
Country
Germany
I mean, modding the Brainslug channel to load the game from somewhere other than the disc will probably be quite some work, right now Brainslug doesn't even need a cIOS.

However, all brainslug does is load the modules from the SD into memory, then load the game DOL into memory, and then link all the modules into the game. There's nothing that would stop USB-Loaders from doing the same.
 

geoGolem

Well-Known Member
Member
Joined
Feb 18, 2012
Messages
170
Trophies
1
XP
1,276
Country
Canada
I mean, modding the Brainslug channel to load the game from somewhere other than the disc will probably be quite some work, right now Brainslug doesn't even need a cIOS.

However, all brainslug does is load the modules from the SD into memory, then load the game DOL into memory, and then link all the modules into the game. There's nothing that would stop USB-Loaders from doing the same.
ya, its probably better to somehow integrate brainslug into usbloader GX ... perhaps, it might be easier to just integrate one type of brainslug module --> is that what privateserver did? though i think the patch for that is easier than something like the GC adapter.

EDIT: Even if I could somehow get brainslug to spit out pre-patched ISO that I could then launch in usbloaderGX, I would be happy for the few games i want to use the GCA adapter with.. but full integration would be much better.
 
Last edited by geoGolem,

geoGolem

Well-Known Member
Member
Joined
Feb 18, 2012
Messages
170
Trophies
1
XP
1,276
Country
Canada
@blackb0x --> im having a little difficulty building usbloadergx.

maybe it would be a good idea to include a zip file of the necessary libraries in the github repo (and have a build.sh script that sets the DEVKITPPC environment variable and runs the makefile or something.

so that one can simply clone the repo potentially extract some libraries and build

EDIT: I managed to get it built.

EDIT: I have done some work to integrate brainslug into usbloaderGX. You can see the branch here: https://github.com/geogolem/usbloadergx/commits/integrateBrainslug

Please understand this is a work in progress - i just started looking into it a few days ago.

If there are no brainslug modules on the sd card - games will load like normal - brainslug executes but basically does nothing since it finds no modules.

so far I tested by adding console-gx module to the sd card and trying to load Mario kart.

I do get the console on the bottom portion of the screen and the white wii rmote space warning on the top of the screen. But if I try to proceed further, the top screen goes black and the bottom screen shows
```
Callback...
cancel all threads...
Done...
```

I have a feeling something is wrong with how the entry point is being passed or used or something. If anybody can help it is much appreciated. Special thanks to @leseratte for chatting with me on discord and providing some invaluable information.

If anybody thinks they can help or improve this in any way - please let me know.
 
Last edited by geoGolem,

geoGolem

Well-Known Member
Member
Joined
Feb 18, 2012
Messages
170
Trophies
1
XP
1,276
Country
Canada
@blackb0x : I implemented a small feature that caches the EmuChannelList to a file, so that it doesn't constantly need to be reloaded. I have tested it and it seems to work without issue, drastically improving speed of loading the GameList when nothing has changed. Of course if one installs/uninstalls emunand wads, or changes the emunand path etc. they will all be reloaded. likewise, if the cache file does not exist they will be reloaded. So if you are managing an emuNand outside of usbloaderGX you will want to delete the cache file in order to trigger a refresh..

Please let me know what you think of the code. I am new to the wii development stuff - so any feedback you have would be greatly appreciated. I built on top of your enhanced build - if possible I would love to work with you and clean it up and actually merge it into your enhanced build. I think perhaps all that is left to do is implement an option that enables or disables the feature.

You can find the branch here: https://github.com/geogolem/usbloadergx/commits/gamelistCache
 
Last edited by geoGolem,
  • Like
Reactions: blackb0x and ber71

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,545
Country
United Kingdom
@geoGolem Hey,

I would say send me a pull request, but I can see two issues that'd cause me to reject it. The first issue is with the config edits, which shouldn't be required with a normal installation of devkitPro and the second is with the commit that adds the old devKitPPC binaries into the project. Just search for "Collection of old devkitPro versions" and read the posts by WinterMute and you'll quickly understand why I'd rather avoid that headache.

I only have a handful of games on my emunand, so I can't easily benchmark your changes to be sure that they're working. You say that it works though, so I guess I could I could cherry pick the commit and edit it slightly? Giving you credit for it of course.

I haven't been doing a whole lot lately because I'm currently recovering from a back injury and the pain meds make me both dizzy and sleepy. By the weekend I'll try to get this both tested and merged though.
 
Last edited by blackb0x,
  • Like
Reactions: Alexander1970

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: yawn