Hacking USB Loader GX

  • Thread starter cyrex
  • Start date
  • Views 7,235,804
  • Replies 29,378
  • Likes 48

Maeson

Well-Known Member
Member
Joined
Apr 3, 2013
Messages
1,190
Trophies
2
XP
3,451
Country
Spain
About Mega Man 9 and 10, there are gecko codes to make them look better. SuperrSonic did them for Mega Man 9, and I did the same for Mega Man 10 by using the ones from SuperrSonic to know where to start to look back when we were still looking around at the deflicker filter removal.

Mega Man 9
WR9E
Mega Man 9

Game width part 1, 4:3 512 [SuperrSonic]
203016b0 028001e0
043016b0 020001e0
e0000000 80008000

Game width part 2, 4:3 512 [SuperrSonic]
2039b264 028001e0
0439b264 020001e0
e0000000 80008000


Mega Man 10
WRXE
Mega Man 10

Game width part 1, 4:3 512 [Maeson]
2046bb24 028001e0
0446bb24 020001e0
e0000000 80008000

Game width part2, 4:3 512 [Maeson]
2050d680 028001e0
0450d680 020001e0
e0000000 80008000

Based on SuperrSonic's codes for MM9.

Between that and being able to patch them to work on Progressive Scan (and Blackbox fixing USB Loader GX' wiiware patching) it was cathartic to replay them. I haven't tried 9 and 10 on the currently available collection, but I still cannot fathom how Capcom dropped the ball so much on the picture quality of these two games not just on Wii, but also on PS3 and 360. At least now I can play one of these in a decent way...

As a curious note, while earlier Mega Man games seemed to be designed for a 256 pixel wide, from I think it was MM3 forward they actually are 240 pixel wide and the rest is used to load graphics, which a large number of more visually polished games did, like Super Mario Bros. 3 and wasn't intended to be seen (just like the top and bottom lines were also not intended to be seen in basically any game). I believe MM9 and MM10 fall into this latter group as far as pretending to be NES-like games.
 
Last edited by Maeson,

Lefteris

Active Member
Newcomer
Joined
Oct 22, 2015
Messages
27
Trophies
0
Age
45
XP
97
Country
Greece
I've installed the d2x-v11-beta1 in my vWii. In USB Loader gx 1281, I can't get my lan adapter to work. Wifi works fine in both vWii and Wii U. I tested the lan adapter in Wii U and it works. Also in HBC in vWii, internet works with the adapter and wifi. Something is going on in USB Loader 1281 and the cIOS maybe. Any help? Should I change cIOS?
 
Last edited by Lefteris,

XFlak

Wiitired but still kicking
Member
Joined
Sep 12, 2009
Messages
13,872
Trophies
3
Age
38
Location
Cyprus, originally from Toronto
Website
modmii.github.io
XP
9,907
Country
Cyprus
I updated this wiki recently based on info shared by blackb0x
Slot 251 base 58: only bases 38 & 58 can play SpongeBob's Boating Bash, and only 58 supports the LAN adapter

So install d2x v11 beta 1 with base 58 to spot 251, and use that to see if it gets your Lan adapter working
 
  • Like
Reactions: Maeson and Lefteris

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
@Cyan Additionally to this: Why is it impossible to create GitHub issues in your repository?
I'm not working on USBLoaderGX anymore (lack of time mostly, but also lack of knowledge). that's too bad, because I had a lot of ideas, but too much to work alone.
For some time, the github repository was only a copy of sourceforge releases, in case new developers were willing to create branches (like tabmod etc.) and maintain their own repositories without the need to send me patches, and me to maintain different branches on sourceforge.

Blackb0x made newer revisions from this last sourceforge/github copy version. He is now at a relative r1281 version, his repository is therefore the one where you should post issues.
If needed, I can update the first post of this thread to reflect progress, and make a better visibility of his being the new official version.
 
Last edited by Cyan,

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,546
Country
United Kingdom
@blackb0x
How does automatic ios assignment for games work? Does the loader contain an internal database or is there a logical choice?
Every Wii game contains information about what IOS it uses, so the loader takes that information and compares it to the cIOS you've got installed. So you'll always boot games with either the correct cIOS or the next best option.

Someone recently asked me if WiiFlow also does this, since it's got an "auto" setting. But the auto setting for WiiFlow doesn't actually pick the correct cIOS to use for games, so you wouldn't be able to play both Call of Duty and Worms Battle Island without one of them freezing.
 
Last edited by blackb0x,

Sypherone

Gaming Ninja
Member
GBAtemp Patron
Joined
Apr 28, 2019
Messages
1,658
Trophies
2
Age
44
XP
2,860
Country
Germany
And additionally he implemented that USBLGX 1280+ will scan the cIOS for the used base IOS to choose the correct one automaticaly.
By using the recommended cIOS settings order, it will also give a bit faster loading times. Because of preventing reloading the game cIOS.
 
  • Like
Reactions: GDX

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
The game cIOS will reload anyway if set to Auto and the game uses another base than the one in the current slot used by the loader.
no ?
unless you favor the current IOS instead of the default game's base, but then Auto loses its purpose.
if you want to favor base56 because most games request that one and users will have statistically less reloads, just set the default loader's slot to where that base is installed.

Isn't the loader scanning and mapping the IOS bases at initial run (or when the user asks to re-check), and sets the slots to use in the settings for boot/xml, loader and games? Then it would use what's in the settings, whatever the slot number you installed your bases.


I didn't check the sources, but based on logic, cIOS base and slot order shouldn't affect the speed.
if base56 is in slot250, then the loader can have 250 as default, and will be as fast than having base56 in slot 249 and using 249 by default.
If "auto" is based on the installed IOS Base, and not the slot order, then base56 could even be random slots from 230 to 253, and that's the same for all other bases. the loader should maintain a map of bases. Isn't how it's working ?


Wiiflow "Auto" is based on slot, instead of base, so it expect all users to have the exact same setup. if it detects a game needing "base57" it will reload to 250. (too bad for you if you didn't install what it expects in it)
 
Last edited by Cyan,

Sypherone

Gaming Ninja
Member
GBAtemp Patron
Joined
Apr 28, 2019
Messages
1,658
Trophies
2
Age
44
XP
2,860
Country
Germany
Ya, that what i understand. Theoretically the cIOS with it base can be in random order and doesnt effect the usage. But most users use cIOS 249 and If its has base 56 and thru most games require it, it will not be reloaded. It reloads only if another base is required.

If they would had cios 249 with base 57 using as Loader cIOS, most time the cIOS with base 56 will be reloaded.

But i still dont understand which IOS has the highest game combatibility, as there is one source in our wiki that says base 57 has 99 % game compatibilty.
 

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,546
Country
United Kingdom
Isn't the loader scanning and mapping the IOS bases at initial run (or when the user asks to re-check), and sets the slots to use in the settings for boot/xml, loader and games? Then it would use what's in the settings, whatever the slot number you installed your bases.
It maps your cIOS when the loader boots and then sets the appropriate cIOS when you boot a game, since that's when information about the game is read.

The loaders IOS setting is unchanged and still defaults to 249, but will use other slots if 249 doesn't contain a cIOS.

I didn't check the sources, but based on logic, cIOS base and slot order shouldn't affect the speed.
It does. I've explained why here.

Both setups work of course, but by using the new cIOS guide there's consistency between Wii and vWii and a speed advantage.

ModMii is going to adopt the 4 slots recommended in my guide, since a few games do use IOS58 and it's essential if you want to use a LAN adapter or have certain peripherals work correctly in games.

Wiiflow "Auto" is based on slot, instead of base, so it expect all users to have the exact same setup. if it detects a game needing "base57" it will reload to 250. (too bad for you if you didn't install what it expects in it)
It just doesn't work the same way. Like it doesn't prioritise bases or have the logic behind it like USB Loader GX does, which is why even if you were to install the d2x cIOS to the recommend slots you can't play both Call of Duty and Worms Battle Island without one of them freezing when using WiiFlow's auto setting.

But i still dont understand which IOS has the highest game combatibility, as there is one source in our wiki that says base 57 has 99 % game compatibilty.
More games use IOS56 than IOS57, so you could argue that it'll have the best compatibility. But it doesn't really matter now that the loaders automatically picking the appropriate cIOS on a per game basis :)
 
Last edited by blackb0x,
  • Like
Reactions: XFlak and Maeson

Brand Newman

Well-Known Member
Member
Joined
Apr 29, 2014
Messages
564
Trophies
2
Age
43
Website
twitter.com
XP
3,405
Country
France
Hello everyone, and thank you very much again for all your work, @blackb0x !

I'm a bit of a "philistine" when it comes to the most technical aspects of the improvements you made, but I got really excited by the "Framebuffer" setting you added!

Since it's not very easy to spot the difference, I took the liberty of making a little comparison, and thought some of you might find it useful?



It's kinda hard to see, but the result on my Wii, combined with "Deflicker OFF", makes my games the most beautiful they've ever been!

I'm quite thrilled to retry some of these gems, and am very thankful for all of you who keep the Wii scene alive.

Yours truly.
 
  • Like
Reactions: blackb0x

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,546
Country
United Kingdom
Since it's not very easy to spot the difference, I took the liberty of making a little comparison, and thought some of you might find it useful?
Yes, thank you. It certainly shows off how it prevents the stretching :)

It's harder to notice the removal of the deflicker filter and the 480p fix, but I'd put that down to YouTube's compression.
 

blackb0x

Well-Known Member
Member
Joined
Apr 22, 2019
Messages
788
Trophies
1
XP
3,546
Country
United Kingdom

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,840
Trophies
1
Age
44
XP
6,633
Country
Germany
I'm not working on USBLoaderGX anymore (lack of time mostly, but also lack of knowledge). that's too bad, because I had a lot of ideas, but too much to work alone.
For some time, the github repository was only a copy of sourceforge releases, in case new developers were willing to create branches (like tabmod etc.) and maintain their own repositories without the need to send me patches, and me to maintain different branches on sourceforge.

Blackb0x made newer revisions from this last sourceforge/github copy version. He is now at a relative r1281 version, his repository is therefore the one where you should post issues.
If needed, I can update the first post of this thread to reflect progress, and make a better visibility of his being the new official version.
I see. Thank you 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
It does. I've explained why here.
It doesn't really explain why. it only shows a specific setup with not enough loader's settings information.

Because I see it can also be like that :
With my setup:

  1. The loader reloads to cIOS 250 (base 56) as it boots
  2. The loader sees that a game wants to use IOS56
  3. The game boots

If 56 is in slot250, it has the same speed than having 56 in slot 249. no difference, really.
unless you force the loader to load with 249 even if the user set the loader to use 250.
And the loader should set itself to ANY slot where 56 is located (it could even be 251 or 248), the loader should know where all the bases are located, and pick the one where 56 is located at boot.
I think you load 58 first, then load the settings, then reload to 249 just because it's set in the settings. you can read the IOS map, or the settings while using 58, and then reload to whatever slot 56 is installed into if the user is using "auto" setup.
So, to me, no there's no speed difference.


Now, if you want to harmonize setup, that's okay. but nothing to do with speed, unless you force a slot number arbitrarily at loader's launch (why 249?) instead of choosing the slot based on the IOS bases the loader mapped.
That's one of the use of the IOS base map. it's not only useful at game launch, it should be used at loader's launch too.

launch > IOS58 > init SD & HDD and read settings > is the user using Auto setup ? look at the IOSmap to locate a base 56 : if not, use the user choice in the settings > reload to found slot (not necessarily 249) which can be any slot with base56, and will NOT need a reload at game launch for most games > no wasted speed
And you don't even need to look at the IOS Map at every loader's launch, because the loader should locate the base56 at initial setup (no config file yet), or when the user run the Automatic base mapper, and the loader sets the slot to use once and for all in the xml/settings. the loader only has to use what's in the settings at launch, no need to look at the IOS map anymore if a config is already present, because the loader ALREADY set the correct slot with base56 as default. if not, let's look at the IOS map at every launch (but it's a waste of time) :
  1. The loader Boot using IOS58
  2. The loader initialize the SD & HDD and read the settings
  3. The loader checks if the user wants to use Auto, if not read the Loader's IOS from the settings and reload to it. else :
  4. The loader read the IOS Map and locate the slot where base56 is located (this can be skipped if it's not an initial run with no settings)

  5. reloads to cIOS <chosen by the loader> (base 56) as it boots
  6. The loader sees that a game wants to use IOS56
  7. The game boots (FAST)
see, you still have your last 3 steps for your FAST game launching.

Then, if the user doesn't want to use AUTO and want to force a base57, 58, or even 56, but not in slot249, up to the user.

This is only how I would have made it work.
I know this is your project and you do it the way you want now. I just don't understand the logic behind the speed gain with a specific cIOS slot order, when the loader can detect any exotic setup and automate all this to load the correct one directly at loader's launch, not only game's launch. All slots have the same loading speed, and the loader can load any slot number it needs.
 
Last edited by Cyan,
  • Like
Reactions: jeannotte

JuanMena

90's Kid, Old Skull Gamer & Artist
Member
Joined
Dec 17, 2019
Messages
4,957
Trophies
2
Age
30
Location
the 90's 💙
XP
10,375
Country
Mexico
Impressive StarFox!
I can play Kirby's Dreamland (not my fave!) from SD using GX.

I think it's finally time to get rid of CFG.

Nice!

IMG_20230306_120840_766.jpg

Post automatically merged:

Can this thing still download cheats?
 
Last edited by JuanMena,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: https://youtube.com/shorts/4M3E1Lz6l9E?si=fSYNJxYTa0czXVow