ok, so I've given some more thought and experimentation to the Gamecube backup loader. I have experimented with a gcos multi disc, and gotten some interesting results. Apparently when rebooting the system menu using the custom ios, the gc backup is readable, however it causes a crash (black error screen saying remove the disc and restart) when the menu goes to read it, I think possibly because it doesn't have a banner or is missing something else. I believe others have claimed that a regular backup (not based off of gcos) will show up in the menu but won't start.
I've been trying to wrap my head around this whole mios thing, but I can't help but wonder if the regular ios is really running underneath (mios is very small and i see no di commands), or if it could be used in this way. My first thought was instead of running bc/mios, let's just make a program that loads the gamecube ipl into memory and runs it somehow. However, as I looked around, I found that tmbinc had created a hacked ipl for running backed up discs. Then, I saw that the source was available, and when I examined it I found that the bootloader code was very similar to that of GeckoOs/Backup launcher. So basically as far as I can tell the IPL launches the game (like the System Menu) and possibly might be needed for some system calls. So I tried launching my GCOS game using the regular backup launcher, but it failed, I kept getting a green screen and a reboot. Finally I decided to patch it to load the game as if it were a wii game, since I had identified that most of the relevant code was the same. I tried this and, after disabling DVD_identify and some other checks, forced it to attempt to run it, but this resulted in a crash.
However, I read on the YAGCD documentation that gamcube discs are also encrypted (
more work). I'm not sure if the GCOS apploader/dol stored on my gcos disc is encrypted, i don't think so, it could be crashing because it's trying to call a function that doesn't exist. In any case, we need Wiigator's dip module source code so we can change it to decrypt gamecube discs, and make more progress.
If any can shed more light on this I would love to hear it...
I thought that the ipl was just a ppc program, but I guess we need some kind of hardware emulation/support (which is either enabled by mios (all ppc code or maybe some arm and some ppc??) or bc (arm code running on starlet)?? i hope it's not a hardware/starlet feature, since it might be harder to send the necessary commands to the drive.) I can't seem to properly decompile either bc or mios, so I'm hoping some IDA wizards will stroll thru here.
another note: running gcos standalone from the GChomebrewLauncher app/mios also is unable to start a game. The app starts but just returns to the main screen when pushing Launch DVD, but maybe this could be fixed if decryption is enabled?
I've been trying to wrap my head around this whole mios thing, but I can't help but wonder if the regular ios is really running underneath (mios is very small and i see no di commands), or if it could be used in this way. My first thought was instead of running bc/mios, let's just make a program that loads the gamecube ipl into memory and runs it somehow. However, as I looked around, I found that tmbinc had created a hacked ipl for running backed up discs. Then, I saw that the source was available, and when I examined it I found that the bootloader code was very similar to that of GeckoOs/Backup launcher. So basically as far as I can tell the IPL launches the game (like the System Menu) and possibly might be needed for some system calls. So I tried launching my GCOS game using the regular backup launcher, but it failed, I kept getting a green screen and a reboot. Finally I decided to patch it to load the game as if it were a wii game, since I had identified that most of the relevant code was the same. I tried this and, after disabling DVD_identify and some other checks, forced it to attempt to run it, but this resulted in a crash.
However, I read on the YAGCD documentation that gamcube discs are also encrypted (
If any can shed more light on this I would love to hear it...
I thought that the ipl was just a ppc program, but I guess we need some kind of hardware emulation/support (which is either enabled by mios (all ppc code or maybe some arm and some ppc??) or bc (arm code running on starlet)?? i hope it's not a hardware/starlet feature, since it might be harder to send the necessary commands to the drive.) I can't seem to properly decompile either bc or mios, so I'm hoping some IDA wizards will stroll thru here.
another note: running gcos standalone from the GChomebrewLauncher app/mios also is unable to start a game. The app starts but just returns to the main screen when pushing Launch DVD, but maybe this could be fixed if decryption is enabled?