Hacking real gamecube backup loader discussion

ppc_gba

Well-Known Member
OP
Member
Joined
Apr 16, 2006
Messages
198
Trophies
0
XP
258
Country
United States
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 (
mad.gif
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?
 

moonmonkey

Well-Known Member
Newcomer
Joined
Jul 12, 2006
Messages
49
Trophies
1
Location
Birmingham
Website
Visit site
XP
534
Country
djdynamite123 said:
Easier to just get a chip to be honest.
I'm not sure if thats the right attitude to be honest. A lot of people do this thing not because of the end result but because they see it as a challenge to be overcome. Sure there are always easier ways to do things, hell mod an original Gamecube, they're cheap enough. If people like ppc_gba thought like that there would be little advancement, i'd go as far as to say that if he/she gets GC back ups running they wont even play them.
I say good luck
smile.gif
 

Mrkinator

Neil Peart Wannabe
Member
Joined
Sep 28, 2008
Messages
888
Trophies
0
Age
30
Location
Great White North, Eh!
Website
Visit site
XP
176
Country
Canada
moonmonkey said:
djdynamite123 said:
Easier to just get a chip to be honest.
I'm not sure if thats the right attitude to be honest. A lot of people do this thing not because of the end result but because they see it as a challenge to be overcome. Sure there are always easier ways to do things, hell mod an original Gamecube, they're cheap enough. If people like ppc_gba thought like that there would be little advancement, i'd go as far as to say that if he/she gets GC back ups running they wont even play them.
I say good luck
smile.gif
Agreed. I hope someone gets it running. I'd be happy to test or what not.
 

hughjass

Well-Known Member
Member
Joined
Sep 20, 2008
Messages
255
Trophies
0
Website
www.marcreeves.co.uk
XP
44
Country
MrBubbles said:
Honestly don't bother. Nintendo is making ports of GC games into Wii games now.

But they're not porting every single GC onto wii now, are they? No.

Come on, there may already be methods out there to play GC games, but if there can be more options available for people, then why not support this?

moonmonkey I agree with you completely.

ppc_gba, I think it's fantastic what you're trying to do.

If you get anywhere with this, then I'd be happy to beta test your work.

Good luck!
 

WiiGator

Active Member
Newcomer
Joined
Sep 28, 2008
Messages
38
Trophies
0
Website
Visit site
XP
12
Country
Gambia, The
I already tried to load GameCube games. The result was:
- GCBooter Homebrew using cIOS from Backup Launcher v0.3 (IOS_Reload() is the only change required).
- A patched MIOS, which enables backups.
- A changed GCOS (replaced 0xA8 by 0xD0).

I was able to start a game, but the game uses the wrong DI commands for reading. So I got one of the famous "Disc eject" errors.
You don't need the DIP plugin source code to write a backup loader for GC mode.

Here are some details for the experts:
- The DVD reset is executed within IOS from Wii mode. You can only access a DVD in GC mode, when the reset was done before. You will need an IOS with enabled backup support.
- The BC disables the backup support. There is no change in BC required.
- The MIOS disables the backup support. When it is reenabled by clearing one bit in a starlet register, it will work.
- The MIOS code (starlet) doesn't handle or change any DVD command. The broadway CPU has in GC mode direct access to the DI registers. The broadway CPU can't access the DI registers in Wii mode.
- GC games use the DVD command 0xA8 for reading the DVDs, same is true for Wii mode. DVD offsets must be 4 Byte aligned. Size must be 32 Byte aligned (maybe less?). Destination address must be 32 Byte aligned.
- Backups are read using 0xD0 command. DVD offsets must be 0x800 aligned, same value for the size. Destination address must be 32 Byte aligned.
- GC games are not encrypted.

The changed alignment restrictions between 0xA8 and 0xD0 are the biggest problem. You can't just replace 0xA8 by 0xD0. There is more required. You need to mix GCOS and SD-Boot. The result may be a compatibilty like SD-Boot and not like GCOS. My question for ppc_gba is now: Do you want to write this hook code?
 

MagicalWingLT

Member
Newcomer
Joined
Nov 3, 2008
Messages
10
Trophies
0
XP
203
Country
United States
What about uploading Saved Game files to your memory card? I have a few games that I can't beat, and I want to upload some files that I got from Gamefaqs.com... I already ordered a SD Gecko Adapter, but what else do I need?
 

blinktoday

Well-Known Member
Newcomer
Joined
Jul 21, 2008
Messages
66
Trophies
0
XP
16
Country
Canada
MagicalWingLT said:
What about uploading Saved Game files to your memory card? I have a few games that I can't beat, and I want to upload some files that I got from Gamefaqs.com... I already ordered a SD Gecko Adapter, but what else do I need?
You didn't need any of that, you could of used Gc Savegame installer, and all you would need is an sd card.
 

Mrkinator

Neil Peart Wannabe
Member
Joined
Sep 28, 2008
Messages
888
Trophies
0
Age
30
Location
Great White North, Eh!
Website
Visit site
XP
176
Country
Canada
WiiGator said:
I already tried to load GameCube games. The result was:
- GCBooter Homebrew using cIOS from Backup Launcher v0.3 (IOS_Reload() is the only change required).
- A patched MIOS, which enables backups.
- A changed GCOS (replaced 0xA8 by 0xD0).

I was able to start a game, but the game uses the wrong DI commands for reading. So I got one of the famous "Disc eject" errors.
You don't need the DIP plugin source code to write a backup loader for GC mode.

Here are some details for the experts:
- The DVD reset is executed within IOS from Wii mode. You can only access a DVD in GC mode, when the reset was done before. You will need an IOS with enabled backup support.
- The BC disables the backup support. There is no change in BC required.
- The MIOS disables the backup support. When it is reenabled by clearing one bit in a starlet register, it will work.
- The MIOS code (starlet) doesn't handle or change any DVD command. The broadway CPU has in GC mode direct access to the DI registers. The broadway CPU can't access the DI registers in Wii mode.
- GC games use the DVD command 0xA8 for reading the DVDs, same is true for Wii mode. DVD offsets must be 4 Byte aligned. Size must be 32 Byte aligned (maybe less?). Destination address must be 32 Byte aligned.
- Backups are read using 0xD0 command. DVD offsets must be 0x800 aligned, same value for the size. Destination address must be 32 Byte aligned.
- GC games are not encrypted.

The changed alignment restrictions between 0xA8 and 0xD0 are the biggest problem. You can't just replace 0xA8 by 0xD0. There is more required. You need to mix GCOS and SD-Boot. The result may be a compatibilty like SD-Boot and not like GCOS. My question for ppc_gba is now: Do you want to write this hook code?
Sounds complicated (here's hoping ppc_gba will do it anyway!
biggrin.gif
)
 

ppc_gba

Well-Known Member
OP
Member
Joined
Apr 16, 2006
Messages
198
Trophies
0
XP
258
Country
United States
wow
wacko.gif
that was way more info than i was expecting...

huh so you're saying that gc games make all their calls to the dvd drive from ppc code with nothing else extra required huh, so I guess this means we can't have gc games running while an ios is running, unless there is some way to subvert the wii/gc mode protections.
in this case, there might not be any modification of the mios necessary, since you could set the bit from the new sdboot+gcos (or maybe wiigcos...), prior to loading the disc. or even better, it could be possible to inject this wiigcos into mios so it would always be loaded instead of the regular ipl.
it would seem there is already someone on tehskeen who has gotten gc backups working from wii mode! (no proof yet, only claims...), but it seems pretty complex. i think we can rewrite the main function of the readpatch code of sdboot with some of the code from waninkoko's dip module, or maybe use the dvd functions it comes with.
just change dvd[2] = 0xA8000000; to dvd[2] = 0xD0000000 in dvd.c;
the first thing i could think of to replace the alignment issue would be to make a buffer (the same thing that was done on waninkoko's loader, i think), we will read extra from the disc and then fetch pieces of this buffer until we need to get the next buffer.

i can't find the source for any version after sdboot 0.3, so i hope someone can post a link, or maybe ask emu_kidid himself for it. as i recall i had some issues compiling 0.3.

of course, in order for any of this to be possible, we need to discover what register must be set, or maybe wiigator could release a patch to be added to wii gamecube homebrew launcher, which I'm sure everyone would GREATLY appreciate
laugh.gif
where would we be without wiigator and waninkoko anyways...
 

samsam12

Test
Banned
Joined
May 13, 2008
Messages
818
Trophies
0
Age
27
Location
A House
Website
Visit site
XP
63
Country
United States
it should work with just booting through WiiGator3. I booted a normal GC game through it, it loaded to the title screen, but then gave me a disc read error.
 

Slimmmmmm

GBAtemp MoNkEeE
Member
Joined
Nov 1, 2007
Messages
1,770
Trophies
0
Location
the land of lol
XP
528
Country
Perhaps what is needed is a reworking of gcos into ? wiicos
tongue.gif


House of dead, or ssbb are wii games that use and load from different partitions etc, maybe this could provide useful ??

I know of one very clever guy who is playing about with this idea for wii multis, but perhaps it could be used to boot GC in wii mode??
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    LeoTCK @ LeoTCK: yes for nearly a month i was officially a wanted fugitive, until yesterday when it ended