Hacking USB Loader GX

  • Thread starter Thread starter blackb0x
  • Start date Start date
  • Views Views 8,067,724
  • Replies Replies 30,226
  • Likes Likes 74
@blackb0x I am using Game and Loader IOS249 since Loader IOS58 won't initialize with my exHDD with Y-cable. But after loading backup through USB Loader GX, returning to it hangs on "reinitializing devices". It doesn't always happen but happens pretty often. Especially after playing for a longer period returning to the loader hangs. Is there are reason for this?

I am using Wii U and followed Wii U Hacks Guide and formatted my HDD according to vWii hacking guide.
Also I disabled Wii U HDD Spin down feature in Wii U menu. So HDD slowing down and failing to speed up ought not to be the issue, I think.

Also in the loader, when using Classic Controller connected to Wii Remote, Pressing on the right of the left analog stick to move the cursor to the left makes it jerk and start moving to the left. Seems to be known issue. Is it possible to be fixed?
 
Last edited by Nomado,
@blackb0x I am using Game and Loader IOS249 since Loader IOS58 won't initialize with my exHDD with Y-cable. But after loading backup through USB Loader GX, returning to it hangs on "reinitializing devices". It doesn't always happen but happens pretty often. Especially after playing for a longer period returning to the loader hangs. Is there are reason for this?
If you're using my version of the loader then it boots with IOS58 before switching over to whatever's set in your config file, so maybe that's why. I could give you a version to test that avoids using IOS58.

Also in the loader, when using Classic Controller connected to Wii Remote, Pressing on the right of the left analog stick to move the cursor to the left makes it jerk and start moving to the left. Seems to be known issue. Is it possible to be fixed?
I don't own a WiiU or a Classic Controller, so I can't easily fix that problem. I'll take a look at the code though and compare it against what's found in some other homebrew.
 
Last edited by blackb0x,
That might work, but it'd probably be better to look at Swiss and copy how it's done there. I don't own a USB Gecko though, so I can't easily make the required changes and then confirm that it's all still working correctly.
That's what beta testers are for, lol. Seriously the amount of effort @NoobletCheese and @MaeseJesus have been putting into this they alone have got to be worth the equivalent of at 10 usb geckos, lol
 
Last edited by XFlak,
@XFlak They might of put time into investigating how it's done, but I'd already said that I knew how to do it and that the codes basically there already. I just can't debug it, so haven't been pursuing it and I don't want to eyeball it.

Lately I've been busy with other things and attempting to fix some really problematic issues. Like the time() function hasn't worked correctly in libogc since 2018 on some consoles and apparently the loader also freezes when it's compiled with the latest version of devkitPPC and run on a Korean Wii, but it works correctly when that same code is compiled with an older version of devkitPPC. So until I have them issues fixed I won't be adding any new features.
 
That might work, but it'd probably be better to look at Swiss and copy how it's done there.

Swiss's patching method is high-tech, but I'm not sure it's necessarily better suited for our purpose, as it seems to identify the target function by counts of instruction types, whereas our current solution identifies it by the exact machine code, which would make it less susceptible to false positives. It's also much simpler as it only replaces 2 bytes in the original function, vs importing an entire custom replacement function, which changes the file size and probably isn't good for overall reliability, if reliability correlates with less overall modification.

On the other hand, emukidid has probably tested and debugged the heck out of it, so it's probably more reliable than I'm giving credit for -- at least on GameCube. How much of it needs to be modified to port it to Wii is unknown to me.

the time() function hasn't worked correctly in libogc since 2018 on some consoles

Flat CMOS battery maybe?
 
Last edited by NoobletCheese,
Swiss is well known for having really good video patching, which is why I'd prefer to go that route. I could then strip out some of the unreliable code and add options to disable filters, dithering, AA etc.

Honestly, I don't know how I'm going to do it yet. At the moment I'm just focused on bug fixes.

Flat CMOS battery maybe?
If only it were that simple!

Basically libogc 1.8.21 included a change which results in times like 5914795516 (Tue, 07 Jun 2157 06:45:16 GMT) for some consoles. So I've found the issue and wrapped the time function to fix that problem. I still haven't figured out how to fix the other problem though, since I don't have a Korean Wii or the same HDD and games. I assume that it's caused by the compiler or another bad change within libogc though.
 
Last edited by blackb0x,
Well, if you don't have time or don't know how to do it, leave the job for someone who can really do it. Noobletcheese has been researching for many days how to disable deflicker in Wii games
 
Hey guys, I'm hoping this is the right place to post this. I'm looking to get Mega Man 9 and 10 running in 480p and have finally found a post (Post 23735 on page 1187 on this thread) that shows code on how to do it, but for the life of me I can't find any tutorials that show how to perform the modification to the WAD.

Can someone point me in a good direction to getting the WADs adjusted for 480p? Or at least tips on getting it started. Thank you.
 
OSC says this got an update April 4th?
if so what are the changes/new stuff in this update?
I'm the only person putting out USB Loader GX updates at this point.

https://gbatemp.net/posts/8856063

Well, if you don't have time or don't know how to do it, leave the job for someone who can really do it. Noobletcheese has been researching for many days how to disable deflicker in Wii games
If you look back at my posts you'll see that I told NoobletCheese that the codes basically already there, implying that I already knew how to do it. But he wanted something done sooner, so he started posting his own findings to that other thread.

My focus right now is fixing bugs, since a pet peeve of mine is when developers add features before they fix critical bugs. So once I'm done with that then I'll focus more on video patching.

Can someone point me in a good direction to getting the WADs adjusted for 480p? Or at least tips on getting it started. Thank you.

1. Use ShowMiiWads to extract the WAD file
2. Use wwcxtool to decompress 00000001.app
3. Use a hex editor like HxD and do what SuperrSonic said in his post

Decompress:
Code:
wwcxtool /u 00000001.app 00000001.dol

Compress:
Code:
wwcxtool /c0 00000001.dol 00000001.app
 
Last edited by blackb0x,
Do it manually. If you bought the games you may want to work with a different title id.
480p:
Code:
 02028001E001E000280000028001E0000000000000000006060606060606060606060606060606060606060606060600001516150000
Uncompress the 00000001.app with wwcxtool and write the above code to addresses:
0x28DB83
0x28DBFB
0x28DBBF
0x291C73
0x291CAF
0x291CEB
0x291D27
Otherwise known as all the video modes in MM9. Now for MM10:
0x31FCC3
0x31FD3B
0x31FCFF
0x323E1B
0x323E57
0x323E93
0x323ECF
It's only necessary to change the video mode the game is using but it doesn't hurt to change them all.
You can leave 01.app uncompressed, or compress it to save a little space. Pack wad and install it.
Now both games support progressive scan and only that. These changes are for the NTSC-U versions and won't work for PAL.

This isn't working for me; I just get a black screen and it hangs on launch.

It's the USA version, and I tried unpacking and repacking with ShowMiiWads, WadMii and wwpacker, with and without signing, with and without compressing. Also tried block IOS reload on/off and launching from plain Wii sysmenu. Installation was done with YAWMM.

I'm sure the author wouldn't have made this post without testing it first, so I suspect it has something to do with the particular version of the wad I've got, or maybe it requires an NTSC console as well (mine's PAL).

However I don't think I could accept this version of the game even if I got it running at 480p as I notice it seems to have some kind scaling error with the pixel alignment being slightly off, noticeable when graphics are scrolling horizontally they seem to get wider and skinnier and wider again.
 
Last edited by NoobletCheese,
This isn't working for me; I just get a black screen and it hangs on launch.

It's the USA version, and I tried unpacking and repacking with ShowMiiWads, WadMii and wwpacker, with and without signing, with and without compressing. Also tried block IOS reload on/off and launching from plain Wii sysmenu. Installation was done with YAWMM.

I'm sure the author wouldn't have made this post without testing it first, so I suspect it has something to do with the particular version of the wad I've got, or maybe it requires an NTSC console as well (mine's PAL).

However I don't think I could accept this version of the game even if I got it running at 480p as I notice it seems to have some kind scaling error with the pixel alignment being slightly off, noticeable when graphics are scrolling horizontally they seem to get wider and skinnier and wider again.
NTSC WADs cannot be played on a Wii PAL, they all give black screen. You'll need to use Custom Nand Loader Custom Nand-Loader MOD 1.1 | GBAtemp.net - The Independent Video Game Community to patch 01.app and in this way you can play NTSC WAD's on PAL consoles.
 
  • Like
Reactions: NoobletCheese
This isn't working for me; I just get a black screen and it hangs on launch.

It's the USA version, and I tried unpacking and repacking with ShowMiiWads, WadMii and wwpacker, with and without signing, with and without compressing. Also tried block IOS reload on/off and launching from plain Wii sysmenu. Installation was done with YAWMM.

I'm sure the author wouldn't have made this post without testing it first, so I suspect it has something to do with the particular version of the wad I've got, or maybe it requires an NTSC console as well (mine's PAL).

However I don't think I could accept this version of the game even if I got it running at 480p as I notice it seems to have some kind scaling error with the pixel alignment being slightly off, noticeable when graphics are scrolling horizontally they seem to get wider and skinnier and wider again.

I did not get it to work either, I tried years ago with no success.

Also, are you saying you didn't get the badly scaled pixel alignment with other wad? I always had it no matter the version I played...
 
NTSC WADs cannot be played on a Wii PAL, they all give black screen. You'll need to use Custom Nand Loader Custom Nand-Loader MOD 1.1 | GBAtemp.net - The Independent Video Game Community to patch 01.app and in this way you can play NTSC WAD's on PAL consoles.

It's working, thank you :yaywii:

--------------------- MERGED ---------------------------

I did not get it to work either, I tried years ago with no success.
Also, are you saying you didn't get the badly scaled pixel alignment with other wad? I always had it no matter the version I played...

I only have one version of it -- USA version, and it has bad pixel alignment in 480i and 480p which I just got working now. I will try and correct that by modifying viWidth...

I presume you have tried the patch which totakeke95 linked. If that isn't working, then I would suggest getting the NTSC version if you haven't tried that already.
 
Last edited by NoobletCheese,
I tried again and on Emunand goes to black screen. On uneek though, it boots in 480p (US region uneek by the way).

It's kinda annoying how emunand can be unreliable for this sort of stuff. Other Wiiware games simply can't get to 480p when loaded through that like Contra Rebirth.

But in any case, this way it does work on 480p which is f$#&€@g exciting. Even if there is the pixel thing there, it is waaaaaay less annoying in progressive scan, what a difference, my god...

If you want this for the pal release, it should be easy to find the offsets to modify. About the video width, if the game is set to 640, I guess it's a matter to try and change it to 512, which should be the closest thing to a 256x240 of the usual nes game.

I guess I will need to make room on my real nand to have these two gems working and available at any time.

Edit: These seem to be the offsets for the PAL versions.

PAL MM9 Offsets:

28DBE3
28DC1F
28DC5B
291CD3
291D0F
291D4B
291D87

PAL MM10 Offsets:

31FCD3
31FD0F
31FD4B
323E1B
323E57
323E93
323ECF

But I only get black screens everywhere. It might be better to just stick with the NTSC versions after all, if I remember MM10 was English only on the PAL release anyways (or at the very least it didn't have Spanish) so there's really no reason to use it over the NTSC for me.
 
Last edited by Maeson,
  • Like
Reactions: NoobletCheese
Thanks for the help! Only thing is I keep getting stuck at trying to decompress the 00000001.app files. I get errors such as "can't write file" and "unknown file structure"

Here's what my cmd looks like:


C:\Program Files (x86)\wwPacker>wwcxtool.exe /u 00000001.app 00000001.dol
Error: Cannot write file!


C:\Program Files (x86)\wwPacker>wwcxtool /u 00000001.app 00000001.dol
Error: Cannot write file!

I've tried both versions of MM9 with and without DLC. I'm pulling my hair out and not sure what I'm doing wrong. Any suggestions and I would be very grateful. Thanks!
 
/siderant

I just love how Windows silently denies the user access to their own PC, leaving them in a state of confusion and uncertainty. I don't buy the excuse that it helps security.

Running the exe as administrator might help, if not then you can reduce the user account control setting. Failing that, you can tweak the security policy in secpol.msc.
 
  • Like
Reactions: XFlak

Site & Scene News

Popular threads in this forum