Hacking SD/USB Gecko v1.0

Screemer

Well-Known Member
Member
Joined
Sep 21, 2008
Messages
1,248
Trophies
0
Website
Visit site
XP
143
Country
Gambia, The
EspañolPorGoogle said:
We could modify wbfs-linux to extract games to a .wbfs file exactly large enough for 1 game, rather than extracting to a 4.7gb iso. It would probably be slow, but why not, eh?
i love this idea. that's what a lot of people are asking for. a wbfs-container which can be stored on every filesystem.
 

EspañolPorGoogle

Member
OP
Newcomer
Joined
Apr 21, 2009
Messages
22
Trophies
0
Website
www.mediafire.com
XP
1
Country
United States
Knocks said:
Hey, I remember you! We chatted about this on Teknoconsolas, didn't we.

Ha! Yes we did. Yeah, this was originally a joke account because I found some bugs in Waninkoko's 1.1 code that were easy to fix and I wanted to share it with him. Seems he doesn't care. 1.5 is "really stable" and won't be updated for a while. Ha! I came here because I knew gbatemp is a broader audience that could consume these changes, not realizing that I had been developing in a vacuum while people much more familiar with backup loaders were not only doing what I had done, but much more in some cases.

QUOTE(TeenTin @ Apr 21 2009, 06:29 AM) Does the Metroid Prime 1 (Wiimake) work ?

No. I just tried, even patching for IOS249 and english as explained here. They fixed softchip to work with this game. I'm only now taking a look at softchip.

Unfortunately, I'm not sure this game can be made to work with USB loaders, at least without updating the cIOS. The game requires IOS249 patching for other loaders because it reloads the IOS after it's been launched. One of the fixes I did to Waninkoko's 1.5 was dealing with a USB drive that wasn't immediately recognized. I found that one can't simply retry the USB access (as Waninkoko was attempting) but you need to actually reload the IOS. Reloading the IOS, however, resets it's state. This means USB, Wiimotes, and other devices managed by the IOS are disconnected. In order to reload, I had to unmount the sdcard, uninitialize the usb code, and disconnect the wiimotes. Then I could reload the ios and re-start this other stuff. For a game to reload the IOS... well, you can see what problems that would cause. We'd need a cIOS that loads information/code from some known location in memory. The loader could fill in that information so that when the cIOS launches, it can reinitialize the USB device and continue reading from the proper disc on the WBFS partition. I don't know if this is expecting too much from a cIOS, as the IOS itself is closed source. It would, however, open up the opportunity for lots of interesting things. (How about a reboot patch that maps the disc channel to a file on the HD. Select the game, reboot, and bam, the disc channel shows your game of the HD.?) Again, I wouldn't expect to see this any time soon, or ever. ... Bootmii might also help.
 

EspañolPorGoogle

Member
OP
Newcomer
Joined
Apr 21, 2009
Messages
22
Trophies
0
Website
www.mediafire.com
XP
1
Country
United States
Knocks said:
Yeah, the GeckoOS and config file features have already been implemented, but it's great that you've coded your own version. You should try what no one else is done and add network support.
wink.gif

Ultimate doesn't seem to have game specific settings. They have global settings and then titles.txt only changes the titles. While there are more config options in his config.txt vs my config.conf, his is far more crude, IMHO. I give individual settings for every game. Additionally, you can't save the settings from the console. You either need to use FTPii or get off your ass and pull out the sdcard to edit the file by hand. Very crude indeed. USBLoader GUI seems to be using the same system. Grr.
 

Gamii

Well-Known Member
Newcomer
Joined
Apr 19, 2009
Messages
46
Trophies
0
XP
1
Country
EspañolPorGoogle said:
Knocks said:
Yeah, the GeckoOS and config file features have already been implemented, but it's great that you've coded your own version. You should try what no one else is done and add network support.
wink.gif

Ultimate doesn't seem to have game specific settings. They have global settings and then titles.txt only changes the titles. While there are more config options in his config.txt vs my config.conf, his is far more crude, IMHO. I give individual settings for every game. Additionally, you can't save the settings from the console. You either need to use FTPii or get off your ass and pull out the sdcard to edit the file by hand. Very crude indeed. USBLoader GUI seems to be using the same system. Grr.

It's on their wishlist. What about becoming part of their project and do your modifications directly to their repository? That could be nice for everyone!
wink.gif
 

Knocks

Well-Known Member
Member
Joined
Jun 12, 2006
Messages
559
Trophies
0
XP
255
Country
You're right about FTPii. The code is so small, a stripped version (with no console, etc) could probably be copy and pasted into the loader code.

I don't use the "ultimate" version, so I don't know what they're up to these days. Configurable USB Loader uses individual settings per game, which originally came out of my little "Pro" project.
smile.gif
 

tueidj

I R Expert
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
EspañolPorGoogle said:
Unfortunately, I'm not sure this game can be made to work with USB loaders, at least without updating the cIOS. The game requires IOS249 patching for other loaders because it reloads the IOS after it's been launched. One of the fixes I did to Waninkoko's 1.5 was dealing with a USB drive that wasn't immediately recognized. I found that one can't simply retry the USB access (as Waninkoko was attempting) but you need to actually reload the IOS. Reloading the IOS, however, resets it's state. This means USB, Wiimotes, and other devices managed by the IOS are disconnected. In order to reload, I had to unmount the sdcard, uninitialize the usb code, and disconnect the wiimotes. Then I could reload the ios and re-start this other stuff. For a game to reload the IOS... well, you can see what problems that would cause. We'd need a cIOS that loads information/code from some known location in memory. The loader could fill in that information so that when the cIOS launches, it can reinitialize the USB device and continue reading from the proper disc on the WBFS partition. I don't know if this is expecting too much from a cIOS, as the IOS itself is closed source.
There's a simple solution to fix the problem of games that reload the IOS - patch the IOS so it doesn't switch to another IOS, but does report as if it has. It's not a hard task since the IOS already checks to see if it's reloading itself and doesn't bother doing anything if that's the case (at least that's how the regular IOSes that I've looked at in IDA behave, waninkoko's cIOS might behave differently). That means you couldn't reload IOS 249 to reinit USB2.0, but IMO that's a bug anyway and there should be a IOCTL to make it reinit.
We could probably fix these problems easily if the source code for the cIOS was available (and patch the SDHC module so older games can use it)...
 

EspañolPorGoogle

Member
OP
Newcomer
Joined
Apr 21, 2009
Messages
22
Trophies
0
Website
www.mediafire.com
XP
1
Country
United States
Gamii said:
It's on their wishlist. What about becoming part of their project and do your modifications directly to their repository? That could be nice for everyone!
wink.gif

I'd love that. I've e-mailed. Most projects won't give repository access to just anyone, and right now I'm a just anyone person. Maintaining patches on a project that is changing at such a rapid pace is also a pain. I made a simple patch, that seems to have been rejected (I suppose they want a more complete solution or have their own solution planned in a different way?) but I've gotten no response other than "sure I'll look at your patch" and I've spent more time merging changes to keep my patch compatible with their latest revision than I spent on the patch in the first place! So... Yeah. Additionally, I am not much of a C++ developer, having spent years with C I'm very much procedural in my mindset. Their latest patches have been turning c style code into more friendly C++ style code. This is good and will make things easier to maintain. It's not really something I would be of much help on, and they obviously want to write code and not spend time getting to know new devs. That's very understandable.

I've setup a gitorious repository for SDUSB-Gecko. The intention is to use this as a test platform for lower end features like networking that could later be merged into a project like USBLoader-GUI. http://gitorious.org/projects/sdusb-gecko. (EditBTW, I put it on their wishlist.)
 

EspañolPorGoogle

Member
OP
Newcomer
Joined
Apr 21, 2009
Messages
22
Trophies
0
Website
www.mediafire.com
XP
1
Country
United States
tueidj said:
EspañolPorGoogle said:
Unfortunately, I'm not sure this game can be made to work with USB loaders, at least without updating the cIOS. The game requires IOS249 patching for other loaders because it reloads the IOS after it's been launched. One of the fixes I did to Waninkoko's 1.5 was dealing with a USB drive that wasn't immediately recognized. I found that one can't simply retry the USB access (as Waninkoko was attempting) but you need to actually reload the IOS. Reloading the IOS, however, resets it's state. This means USB, Wiimotes, and other devices managed by the IOS are disconnected. In order to reload, I had to unmount the sdcard, uninitialize the usb code, and disconnect the wiimotes. Then I could reload the ios and re-start this other stuff. For a game to reload the IOS... well, you can see what problems that would cause. We'd need a cIOS that loads information/code from some known location in memory. The loader could fill in that information so that when the cIOS launches, it can reinitialize the USB device and continue reading from the proper disc on the WBFS partition. I don't know if this is expecting too much from a cIOS, as the IOS itself is closed source.
There's a simple solution to fix the problem of games that reload the IOS - patch the IOS so it doesn't switch to another IOS, but does report as if it has. It's not a hard task since the IOS already checks to see if it's reloading itself and doesn't bother doing anything if that's the case (at least that's how the regular IOSes that I've looked at in IDA behave, waninkoko's cIOS might behave differently). That means you couldn't reload IOS 249 to reinit USB2.0, but IMO that's a bug anyway and there should be a IOCTL to make it reinit.
We could probably fix these problems easily if the source code for the cIOS was available (and patch the SDHC module so older games can use it)...

I'll take your word on it. I have no real idea how the cIOS is made or what can reasonably be done. Perhaps I just assumed it's a complicated task as Nintendo hasn't released their sources for the IOS, so how could it be done with out working with a disassembler? This is not something I've really looked into. I wouldn't expect Waninkoko to release anything he doens't have to... He respects the GPL, but he hasn't yet shared something just to share something.
 

tueidj

I R Expert
Member
Joined
Jan 8, 2009
Messages
2,569
Trophies
0
Website
Visit site
XP
999
Country
Waninkoko doesn't seem to understand the GPL. He uses GPL code in his "products" and then only releases the changes he has made to the GPL code instead of releasing the whole code.
QUOTE said:
But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
In other words, GPL code is used in Waninkoko's cIOS hence the entire source code should be made available. He has released the source code for the SDHC module and the patches for the EHCI module but not the new DIP plugin or other various patches. The source code for the cIOS_Installer should also be released as it is part of the build process.
Enough ranting...

To patch an IOS to stop IOS reloading:
- Load a base IOS into IDA and find where it checks the requested new IOS number. IOS36 seems to be the preferred base.
- Work out how to patch it so it always skips reloading (required: ARM assembly knowledge)
- Add the patches to patchmii's source code, build it, run it on the wii to install the new patched IOS
- Run an IOS reloading game using the new IOS and see what happens
 

Cory321

Well-Known Member
Newcomer
Joined
Apr 6, 2009
Messages
50
Trophies
0
XP
144
Country
United States
Hi!

This is good for people that only likes few but useful options.

I just have to ask you something.

Does it support WiiRD?
If it doesn't, could you add that freature please?

My Wii can't read discs so this is how i load my gamesm and i bought an usb gecko but i haven''t tested it because of that.
cry.gif


So please tell me if it has that function or add it please I'll appreciate it a lot!!
frown.gif


People would love it too, because there is NOT a Usb Loader that supports that. At least when i searched i didn't found nothing.

So it would make your Usb Loader version even more popular!!!!
smile.gif


Thanks.
 

tee1

New Member
Newbie
Joined
May 31, 2009
Messages
1
Trophies
0
XP
2
Country
United States
I loaded Custom IOS38 rev 12 today & SD/USB Gecko v1.0 stop mounting the hard drive. I had to go back to rev 10.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/watch?v=gYzI76fwaM0